Vb.Netを使用してExcelに複数の行を書き込む方法
Visual Basic.Netアプリケーションを構築するときは、印刷されたレポートに加えて、Excelへのエクスポート機能を追加することを検討してください。追加された機能はほとんどコードを必要とせず、顧客は選択した方法でデータを並べ替えて分析できます。この関数を追加するには、VisualBasicのフォームデザイナを使用します。
1
Visual Studioを開き、新しいVisualBasicプロジェクトを作成します。「ファイル」、「新規プロジェクト」の順にクリックします。新しいプロジェクトダイアログが表示されたら、ツリービューから[Visual Basic / Windows]を選択し、[Windowsフォームアプリケーション]アイコンをクリックして、プロジェクトに「ExcelTest」という名前を付け、[OK]をクリックします。少し待つと、フォームデザイナが表示されます。
2
ExcelActiveXコンポーネントへの参照を追加します。プルダウンメニューから「プロジェクト」をクリックし、「参照の追加」をクリックします。「COM」タブをクリックし、「MicrosoftExcel」までスクロールダウンします。Excelのインスタンスが複数リストされている可能性があるため、お客様のコンピューターですぐに利用できる最新バージョンを選択してください。
3
フォームにボタンを追加します。ツールボックスアイコンをクリックしてツールボックスを開き、ボタンをフォームにドラッグします。ボタンを右クリックして、「プロパティ」を選択します。プロパティリストが表示されたら、ボタンに「btnToExcel」という名前を付け、Textプロパティを「ToExcel」に変更します。次に、新しいボタンをクリックしてコードウィンドウを開きます。
4
次のように、ライブラリインポートをプログラムコードの先頭に追加します。
Microsoft.Office.InteropをインポートしますSystem.TextパブリッククラスForm1をインポートします
5
Excelオブジェクトのプライベートフィールドを宣言します。
Private excelApp = New Excel.Application Private excelDoc As Excel.Workbook Private excelSheet As Excel.Worksheet Private range As Excel.Range
6
次に、スプレッドシートに入力するコンテンツを作成します。
Private Sub btnToExcel_Click(sender As System.Object, e As System.EventArgs) Handles btnToExcel.Click Dim txt As New StringBuilder Dim i, j As Integer For i = 1 To 20 For j = 1 To 10 txt.Append(i * j) txt.Append(vbTab) Next txt.AppendLine() Next Clipboard.SetText(txt.ToString)
この例でスプレッドシートに送信されるコンテンツは、10 x20の掛け算の九九を使用しています。すべてのデータは、列がタブ文字(vbTab)で区切られ、各行が行末文字で区切られた(AppendLineメソッドを使用して)StringBuilderに追加されます。すべてのコンテンツがStringBuilderにコピーされた後、クリップボードに配置されます。スプレッドシートが開くと、コードはこのデータをスプレッドシートに貼り付けます。
7
スプレッドシートを開きます。
excelApp = CreateObject( "Excel.Application")excelApp.Visible = True excelDoc = excelApp.Workbooks.Add()excelSheet = excelDoc.ActiveSheet
ここで、プログラムはCreateObjectメソッドを使用して新しいExcelアプリケーションオブジェクトを作成し、そのVisibleプロパティをTrueに設定して、Excelに画面に表示するように指示します。次に、新しいワークシートを作成し、アクティブなページへのハンドルを取得します。
8
スプレッドシートの最初のセルにデータを貼り付けます。
range = excelSheet.Cells(1, 1) excelSheet.Paste(range) End Sub
エンドクラス
最初のセルの範囲を取得してから、クリップボードの内容をセルに貼り付けます。タブとラインフィードは、列と行を分離します。
9
プログラムを実行します。「F5」をクリックしてプログラムを開始し、「ToExcel」ボタンをクリックしてスプレッドシートを開いて表示します。