レジュメ
1.メソッドの仕様
・TransferSpreadsheetメソッドは、Access VBAに標準で用意されている命令の一つ。
・このメソッドを使用すると、エクセルの内容をテーブルに取り込んだり、逆にテーブルの内容をエクセルに出力したりすることができる。
DoCmd.TransferSpreadsheet メソッド (Access)
TransferSpreadsheet メソッドは、Visual Basic で”TransferSpreadsheet/ワークシート変換” アクションを実行します。
引数
名前 | データ型 | 説明 |
---|---|---|
TransferType | AcDataTransferType | 変換の種類を指定します。既定値は acImport です。 |
SpreadsheetType | AcSpreadSheetType | インポート元、エクスポート先、またはリンク先のワークシートの種類を指定します。 |
TableName | バリアント型 (Variant) | (省略) |
FileName | バリアント型 (Variant) | (省略) |
HasFieldNames | バリアント型 (Variant) | (省略) |
Range | バリアント型 (Variant) | (省略) |
UseOA | バリアント型 (Variant) | (省略) |
名前 | 説明 |
---|---|
acSpreadsheetTypeExcel7 | Microsoft Excel 95 形式 |
acSpreadsheetTypeExcel8 | Microsoft Excel 97 形式 |
acSpreadsheetTypeExcel9 | Microsoft Excel 2000 形式 |
acSpreadsheetTypeExcel12Xml | Microsoft Excel 2010 XML 形式 |
2.出力形式による出力結果の違い (裏面も参照)
・メソッドの第二引数を変更すると、出力されるエクセルの形式を変更できる。
・出力するエクセルの形式によって、微妙に異なる表示となる。
→文字化けが発生するエクセル形式がある
→エクセル形式によってフォントサイズが異なる
→エクセル形式によって選択されているセルの位置が異なる
(*1)「DoCmd.TransferSpreadsheet メソッド (Access)」
DoCmd.TransferSpreadsheet メソッド (Access)
Office VBA リファレンス トピック
(*2)「AcSpreadSheetType 列挙 (Access)」
AcSpreadSheetType 列挙型 (Access)
Office VBA リファレンス トピック
出力結果
出力するテーブルTBL_TESTの内容
テーブルTBL_TESTの内容をエクセル出力するプログラム
・上の行から順に、95形式、97形式、2000形式、2010形式で出力するように指定。
出力結果(Excel 2013で開いた直後の状態を撮影)
・(左上)1_出力データ(95形式).XLS ・・・文字化けが発生している。
・(右上)2_出力データ(97形式).XLS
・(左下)3_出力データ(2000形式).XLS
・(右下)4_出力データ(2010形式).XLSX ・・・フォントの大きさが他の3つのそれと異なる。中途半端な位置のセルが選択されている。
※(右下)4_出力データ(2010形式).XLSXのセル位置についての補足事項
・出力したエクセルを削除して新しく出力しなおしても、セルC5の位置が選択されている。
・テーブルのデータ行、列の増減でもセルC5の位置は変化しない
・新規にエクセルを開いたときにはセルA1が選択される。
コメント