CSV結合ツールを自作しよう!(第2回・画面レイアウト作成編)

プログラミング入門
この記事は約6分で読めます。

今回からVisual Studio2019 を使って、CSV結合ツールの画面レイアウトを作成していきます。

この記事を読む前に、Visual Studio2019をまだインストールされていない方は、こちら の記事を参考にインストールをお願いします。

また、インストール後のVisual Studio2019の起動方法は こちら の記事を、画面レイアウトの作成方法は こちら の記事をご覧ください。

プロジェクトを作ろう

プロジェクトを作るには、プロジェクト名を決めなければなりません。

今回はCSVファイルを結合するものになるので、CsvJoiner と言うプロジェクト名にしましょう。

プロジェクト名の変更は結構面倒なので、打ち間違い等に気を付けて慎重に入力してください。

詳しい手順については、こちら の記事をご参照ください。

プロジェクトが出来上がったら、いよいよレイアウトの作成に移ります。

Form.csの名前を変更しよう

プロジェクトが出来上がった状態では、Formクラスのファイル名が Form1.cs になっているので、適切な名前に変更したいと思います。

複数のフォームを使うプログラムの場合、それぞれのフォームに適切な名前を付けることで、ソリューションエクスプローラー上での識別がしやすくなります。

ただ、今回は画面が1個なので、あまり意味は無いかもしれません。

この作業は必須ではないので、このままForm1.csでも構いません。

新しく付ける名前はフォームの役割が分かるような、それっぽいものを付ければOKです。

ただ、フォームクラスだと判断できるように名前の一部に Formを付けた方が、よりベターです。

例えば、 CsvJoinerForm とかですかね。

プログラム毎に名前を考えるのが面倒という方は、一律にMainFormという名前を使ってもいいと思います。

名前の変更方法は、Visual Studio の右側にあるソリューションエクスプローラーから「Form1.cs」を右クリックし、表示されるメニューから「名前の変更」を選び、MainForm  又は 好きな名前に変更して下さい。

画面レイアウトを作ろう

Visual Studioのレイアウトエディターが起動したら、下記の通り Label、Button、ComboBox のコントロールを張り付けて下さい。

コントロールが張り終わったら、今度は各コントロールに名前を付けていきます。

ポイントとして、そのコントロールがどういう役割なのかが判断できるような名前を付けます。

但し、Labelは固定の文字列を表示するコントロールなので、特に名前を付ける必要はありません。

また、前回作成したCSV分割ツールと同様に、MainForm以外は先頭に”ux”という接頭語を付加しています。

コントロールの役割(Labelを除く)コントロールに付ける名前
プロジェクトが出来上がった際、最初に自動で作成されるWindow MainForm
結合対象フォルダの入力/表示用TextBoxuxTargetFolder
出力先ファイル名入力/表示用TextBoxuxOutputFile
ヘッダ行数の入力用TextBoxuxHeaderCount
結合対象フォルダの選択ダイアログ表示ButtonuxSelectTargetFolder
出力ファイル名の選択ダイアログ表示ButtonuxSelectOutputFile
結合実行ButtonuxExecJoin

前回と同様、今回もいくつかのコントロールについて、一部のプロパティに値を設定したいと思います。

下記は一例ですので、自分の好みに合わせて設定してみて下さい。

コントロール名プロパティ名設定する値
MainFormFont
Text
Meiryo UI,9pt
CSV結合ツール
uxHeaderCountTextAlignRight
uxSelectTargetFolderText選択
uxSelectOutputFileText選択
uxExecJoinText結合実行

ちなみに、TextAlignプロパティは、文字を右寄せにするためのものです。

これらプロパティの設定は、今回 Visual Studioのレイアウトエディタ上から設定しましたが、もちろんプログラムにソースコードから設定することも可能です。

その場合、MainForm() コンストラクタか、Form_Loadイベントハンドラのどちらかに、以下の行を記述します。

Visual Studioのレイアウトエディタ上で設定する方法と、ソースコードで設定する方法のどちらを選択すべきかについては、お好きな方をどうぞ。

1つの考え方として、プログラムの最初から最後まで変更しないプロパティについては、レイアウトエディタで設定すれば良いと思っています。

但し、人に説明する際や、別のプログラムとして使いまわす場合、レイアウトエディタよりソースコードの方がコピペが方が楽な時があるので、その時はソースコードへの記述が良いように思います。

以上で画面レイアウトの作業は完了です。

イベントハンドラを作ろう

では、最後にイベントハンドラを作りましょう。

今回の画面はボタンが3つだけなので、3つのbuttonコントロールを順次ダブルクリックして、イベントハンドラを作成しておいてください。

ここまでの操作で、下記のプログラムコードが自動的に作られたと思います。

動かしてみよう

では、実際に動かしてみましょう。

Visual Studio の上段やや左にある「開始」ボタンをクリックすれば、プログラムが動きます。

ここでもしエラーが出た場合、Visual Stuido上でソースコードの不整合が発生している可能性があるので、こちらの記事の目次から「動かしてみよう」にジャンプして、書かれている内容を実行してみて下さい。

64bitで動かしてみよう

1ファイルあたり1~2GB程度のCSVファイルを結合するのであれば、このままでも問題無く分割出来ます。

しかし、より大きなCSVファイルを結合する場合は、64bit で動かさなければなりません。

32bit とは、CPUが処理するアドレス空間(メモリを指定できる範囲)のサイズのことで、4GBを超えることが出来ません。

Visual Studio は、OS(Windows10)のビット数(32Bit 又は 64Bit)

を自動で判断する「Any CPU」という設定がされています。

しかし、残念なことに32bit が優先になっているため、64bitのWindows10であっても32bit で動いてしまいます。

Visual Studioのプロジェクトの設定を変更し、32bit優先をやめるか、64Bitとして強制的に動作させるかを選択すれば、この問題は解決します。

方法は簡単で、次の設定で64bitで動作させることができます。

以上の操作を行った後、「開始」ボタンをクリックすると、4GB 以上のメモリを扱えるようになります。

まとめ

如何でしたでしょうか。

今回はレイアウトエディタを使って

  • 必要なコントロールを画面(Window)に配置
  • コントロールに名前を付ける
  • コントロール(Button)をダブルクリックし、イベントハンドラを自動作成する

というところまで行いました。

次回は全ソースの掲載と説明に入りますが、もしコピー&ペーストしながら動作を確かめたいのであれば、コントロールの名前は大文字小文字含め、一字一句間違わないようご注意ください。

逆に、掲載したソースを理解しながら作っていくのであれば、コントロールの名前は好きなものを付けて頂ければと思います。

タイトルとURLをコピーしました