Blogシンプルウェア株式会社のブログです。masterおかげさまでいろいろな種類の開発をさせてもらっている今日この頃。長年、ソフトウェア開発に携わってきて、なーんも業界に寄与していないと実感しています。なにかしないとなぁ、というわけではないのですが、技術系のコンテンツを今後断続的に掲載しようと思っています。VisualStudioのVisualBasic系開発が長いのですが、最近PDFファイル操作の必要があり、今まではAcrobatSDKで開発していたのですが。今回はPDFファイル結合が必須のため、他のツールを探していました。「iTextSharp」を見つけて使用しました。情報があるようでなかったりしてちょっと苦労はしたのですが、その辺をブログに備忘録として今後まとめようと思っています。今まで受託開発などで経験してきたプロジェクトの作成方法なども記載しますが、できるだけ委託企業先のノウハウに触れないようにしたいと思います。触れてしまったときはご指摘ください。開発環境もVisualStudio2008ベースでやってきたのですが、最新はVisualStudio2012となっており、今回はその環境理解も含めて、業務アプリの基本作成から始めたいと思っています。今回プロジェクトの基本を作ってみようと思います。開発環境は以下のようなものです。Pro1.VisualStudio2012の業務アプリケーションの基本プロジェクト作成(1)プロジェクト作成VisualStudio2012を起動してプロジェクトを作るのですが、なんか画面がのぺっとしていて以前の2008より見ずらいなぁという印象です。←こんな感じそれはさておき、通常は左側メニューの「新しいプロジェクト...」か「ファイル」-「新しいプロジェクト」で作成するのですが、これだと1ソリューション、1プロジェクト前提なので、ソリューション名とプロジェクト名が同一になります。別にそれでもよいのですが、今回は同一ソリューション内にいろいろなプロジェクトを作成してみたいので、ソリューション名とプロジェクト名を別にします。Framework2.0」を指定しておきます。ソリューション」を選択してカラのソリューションを作成します。←作成したソリューションその後、再度「新しいプロジェクト...」でプロジェクトを作成します。エクスプローラー」で作成したソリューション名をクリックして選択状態にしておかないと、別ソリューションとして作成されてしまうのでご注意を。作成するアプリケーション種類は、「Windowsフォームアプリケーション」とします。←プロジェクト初期画面(2)プロジェクト内フォルダ作成とメニューフォーム作成ここまでで勝手に「Form1」が作成された状態になっているので、今後のアプリケーションの参照性を高めるためにフォルダを作成して整理し、メニュー画面を作ります。プロジェクト名右クリックで「追加」-「新しいフォルダ」でアプリケーション関係用の「App」フォルダを作成し、その中にForm関係を入れる「Form」フォルダを作成します。←こんな感じ作成した「Form」フォルダに勝手に作成された「Form1.vb」ファイルをドラッグして移動します。フォーム名を右クリックして「名前の変更」選択で名称を「Frm_MainMenu.vb」に変更します。これをメニューフォームとするということ。画面に表示されているフォーム自体をクリックして選択状態にし、右側の「プロパティ」で、以下の4点を修正します。Text:「MainMenu」Size:適当に設定(今回は500X500)SizeGripStyle:Hide(フォームサイズ変更不可)MaximizeBox:False(画面最大化ボックス非表示)業務アプリの場合は、フォームサイズを変更されるとユーザインターフェースが危うくなるので、たとえば1024x768固定が多いため、フォームサイズ変更関連は不可としています。この状態で画面上部にある「開始」をクリックすると、ビルドが始まりDEBUGモード実行でメニューフォームが表示されます。名前空間ですが、業務アプリケーションの開発では、やらなくともさほど問題はないという認識ですが、きちんとしている企業のベースプロジェクトでは指定されていますのでやって置きます。エクスプローラー」上部メニューで「すべてのファイルを表示」をクリックして、以下の3ファイルが表示されるようにします。「<>(コード表示)」の左隣りのボタンです。←すべてのファイル表示まず、「Frm_MainMenu.vb」ファイルを選択し、以下のように「Namespace」を追加します。同一名前空間にしておくほうが良いものに共通の名称をつける、ということで、今回はフォルダ名を基準としてフォーム関連は「App.Form」とします。Namespace同じく「Frm_MainMenu.Designer.vb」ファイルを選択し、「Namespace」でコードすべてを囲みます。これをしないとエラーが出ます。名前空間が変更になると、メニューフォームの呼び出し名称も「App.Form.Frm_MainMenu」となります。そこで、起動時のスタートアップフォーム名を再設定します。エクスプローラー」のプロジェクト名「PdfProject」を右クリックして「プロパティ」選択でプロパティ画面を表示します。「アプリケーション」タブ選択で、以下の2点を修正します。通常はメニューフォームを最初に表示でよいのですが、メニュー表示する前に、たとえばパラメータを読み込むとか、そのパラメータによって初期表示フォームが変わるなんてことがあります。アプリケーションの二重起動禁止など。そのために、スタートアッププログラムを自分で用意して、そこからメニュー表示、という変更を行います。エクスプローラー」の「App」フォルダ右クリック-「追加」-「クラス」選択で「ClsMain.vb」ファイルを追加します。そこに以下のコードを追加します。''MessageTool.ShowAttention("多重起動はできません。MsgBox("同一アプリケーションの複数起動はできません。'以下2行の記述は、ネットで調べれば説明が出てきます。'はたしてWindows8環境で必要かは疑問。心配性なので外せない。最後に、プロジェクトのプロパティで「スタートアップオブジェクト」を「App.ClsMain」に変更して終了です。これで、フォーム表示前に何らかの処理が必要な場合にここに記述すればOK、ということになります。(5)今回のまとめとりあえず、息切れです。ソリューション、プロジェクト、名前空間追加、メニューフォーム作成、スタートアップクラス作成と、一通り作ってきました。今回の内容で、参考になるWebリンクを以下に記載しますので参考にしてください。次回は、DEBUG時に必要となるLOG出力と、フォーム間の連携、基本的なコーディングの仕方を掲載しようかと思います。今回の記事で、2時間弱使っているので、結構大変です。