「エクセルファイルを作成・操作・保存する」の編集履歴(バックアップ)一覧はこちら

エクセルファイルを作成・操作・保存する」(2013/06/11 (火) 02:06:46) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

***エクセルファイルを作成・操作・保存するクラス - ソース Option Explicit ' EXS_ExcelFileObject ' エクセルでの新規ファイル作成・ファイルオープン・ファイル開閉・保存を行う ' Accessで使用する場合「Microsoft Excel Object Library」への参照設定を追加する Private TemplateFileInfo As CMN_FileInfo Private TargetFileInfo As CMN_FileInfo Private fileobj As Workbook Private Sub class_initialize() ' 1.属性の初期化 Set TemplateFileInfo = New CMN_FileInfo Set TargetFileInfo = New CMN_FileInfo End Sub ' SetTemplateFileInfo ' テンプレートファイルの情報を取得する ' 引数:あり ' iFileInfo :CMN_FileInfo :ファイル情報 ' 戻り値:なし Public Function SetTemplateFileInfo(ByVal iFileInfo As CMN_FileInfo) Set TemplateFileInfo = iFileInfo End Function ' SetTargetFileInfo ' 操作対象ファイルの情報を取得する ' 引数:あり ' iFileInfo :CMN_FileInfo :ファイル情報 ' 戻り値:なし Public Function SetTargetFileInfo(ByVal iFileInfo As CMN_FileInfo) Set TargetFileInfo = iFileInfo End Function ' OpenFile ' エクセルファイルを開く ' 引数:なし ' 戻り値:なし Public Function CreateNewFile() If TemplateFileInfo.GetFileName <> "" Then Set fileobj = Excel.Application.Workbooks.Add(TemplateFileInfo.GetFilePath & TemplateFileInfo.GetFileName) Else Set fileobj = Excel.Application.Workbooks.Add End If End Function ' SaveNewFile ' 新規ファイルとしてエクセルファイルを保存する ' 保存形式は、エクセルのバージョンと、保存ファイル名の拡張子から自動決定する ' 引数:なし ' 戻り値:なし Public Function SaveNewFile() Dim appVersion As Long ' 1.エクセルのバージョン取得 appVersion = CLng(Excel.Application.Version) ' 2.バージョン別・拡張子別に保存方法を選択 If appVersion < 12 Then 'a.バージョンは2003以前 If Right(TargetFileInfo.GetFileName, 4) = ".xls" Then '(1).拡張子が「.xls」 ' FileFormatの設定値=43(XlFileFormat.xlExcel9795) fileobj.SaveAs filename:=TargetFileInfo.GetFilePath & TargetFileInfo.GetFileName, FileFormat:=43 End If Else 'a.バージョンは2007以降 If Right(TargetFileInfo.GetFileName, 4) = ".xls" Then '(1).拡張子が「.xls」 ' FileFormatの設定値=56(XlFileFormat.xlExcel8) fileobj.SaveAs filename:=TargetFileInfo.GetFilePath & TargetFileInfo.GetFileName, FileFormat:=56 ElseIf Right(TargetFileInfo.GetFileName, 5) = ".xlsx" Then '(2).拡張子が「.xlsx」 ' FileFormatの設定値=51(XlFileFormat.xlOpenXMLWorkbook) fileobj.SaveAs filename:=TargetFileInfo.GetFilePath & TargetFileInfo.GetFileName, FileFormat:=51 End If End If End Function ' OpenFile ' エクセルファイルを開く ' 引数:なし ' 戻り値:なし Public Function OpenFile() Set fileobj = Nothing Set fileobj = Excel.Application.Workbooks.Open(TargetFileInfo.GetFilePath & TargetFileInfo.GetFileName) End Function ' SaveNewFile ' 開いているエクセルファイルを上書き保存する ' 引数:なし ' 戻り値:なし Public Function SaveFile() ' 1.ファイルが存在する場合、ファイルを上書き保存 If Not fileobj Is Nothing Then fileobj.Save End If End Function ' CloseFile ' 開いているエクセルファイルを閉じる ' 引数:なし ' 戻り値:なし Public Function CloseFile() ' 1.ファイルが存在する場合、ファイルを閉じる(保存しない) If Not fileobj Is Nothing Then fileobj.Close SaveChanges:=False End If Set fileobj = Nothing End Function [[トップ]]
***エクセルファイルを作成・操作・保存するクラス - ソース Option Explicit ' EXS_ExcelFileObject ' エクセルでの新規ファイル作成・ファイルオープン・ファイル開閉・保存を行う ' Accessで使用する場合「Microsoft Excel Object Library」への参照設定を追加する Private TemplateFileInfo As CMN_FileInfo Private TargetFileInfo As CMN_FileInfo Private fileObj As Workbook Private Sub class_initialize() ' 1.属性の初期化 Set TemplateFileInfo = New CMN_FileInfo Set TargetFileInfo = New CMN_FileInfo End Sub ' SetTemplateFileInfo ' テンプレートファイルの情報を取得する ' 引数:あり ' iFileInfo :CMN_FileInfo :ファイル情報 ' 戻り値:なし Public Function SetTemplateFileInfo(ByVal iFileInfo As CMN_FileInfo) Set TemplateFileInfo = iFileInfo End Function ' SetTargetFileInfo ' 操作対象ファイルの情報を取得する ' 引数:あり ' iFileInfo :CMN_FileInfo :ファイル情報 ' 戻り値:なし Public Function SetTargetFileInfo(ByVal iFileInfo As CMN_FileInfo) Set TargetFileInfo = iFileInfo End Function ' OpenFile ' エクセルファイルを開く ' 引数:なし ' 戻り値:なし Public Function CreateNewFile() If TemplateFileInfo.GetFileName <> "" Then Set fileObj = Excel.Application.Workbooks.Add(TemplateFileInfo.GetFilePath & TemplateFileInfo.GetFileName) Else Set fileObj = Excel.Application.Workbooks.Add End If End Function ' SaveNewFile ' 新規ファイルとしてエクセルファイルを保存する ' 保存形式は、エクセルのバージョンと、保存ファイル名の拡張子から自動決定する ' 引数:なし ' 戻り値:なし Public Function SaveNewFile() Dim appVersion As Long ' 1.エクセルのバージョン取得 appVersion = CLng(Excel.Application.Version) ' 2.バージョン別・拡張子別に保存方法を選択 If appVersion < 12 Then 'a.バージョンは2003以前 If Right(TargetFileInfo.GetFileName, 4) = ".xls" Then '(1).拡張子が「.xls」 ' FileFormatの設定値=43(XlFileFormat.xlExcel9795) fileObj.SaveAs FileName:=TargetFileInfo.GetFilePath & TargetFileInfo.GetFileName, FileFormat:=43 End If Else 'a.バージョンは2007以降 If Right(TargetFileInfo.GetFileName, 4) = ".xls" Then '(1).拡張子が「.xls」 ' FileFormatの設定値=56(XlFileFormat.xlExcel8) fileObj.SaveAs FileName:=TargetFileInfo.GetFilePath & TargetFileInfo.GetFileName, FileFormat:=56 ElseIf Right(TargetFileInfo.GetFileName, 5) = ".xlsx" Then '(2).拡張子が「.xlsx」 ' FileFormatの設定値=51(XlFileFormat.xlOpenXMLWorkbook) fileObj.SaveAs FileName:=TargetFileInfo.GetFilePath & TargetFileInfo.GetFileName, FileFormat:=51 End If End If End Function ' OpenFile ' エクセルファイルを開く ' 引数:なし ' 戻り値:なし Public Function OpenFile() Dim bookObj As Workbook Dim isOpenFlg As Boolean ' 1.フラグを初期化 isOpenFlg = False ' 2.指定名のブックが開かれている場合フラグをTRUEにする For Each bookObj In Excel.Application.Workbooks If bookObj.Name = TargetFileInfo.GetFileName Then isOpenFlg = True Exit For End If Next bookObj ' 3.フラグがFALSEの場合ファイルを開く Set fileObj = Nothing If isOpenFlg = False Then Set fileObj = Excel.Application.Workbooks.Open(TargetFileInfo.GetFilePath & TargetFileInfo.GetFileName) Else ' 4.既に開かれている場合、指定ファイルのオブジェクトを取得する Set fileObj = Excel.Application.Workbooks(TargetFileInfo.GetFileName) End If End Function ' SaveFile ' 開いているエクセルファイルを上書き保存する ' 引数:なし ' 戻り値:なし Public Function SaveFile() ' 1.ファイルが存在する場合、ファイルを上書き保存 If Not fileObj Is Nothing Then fileObj.Save End If End Function ' CloseFile ' 開いているエクセルファイルを閉じる ' 引数:なし ' 戻り値:なし Public Function CloseFile() ' 1.ファイルが存在する場合、ファイルを閉じる(保存しない) If Not fileObj Is Nothing Then fileObj.Close SaveChanges:=False End If Set fileObj = Nothing End Function [[トップ]]

表示オプション

横に並べて表示:
変化行の前後のみ表示: