PcSchool.Club

パソコンを分かりやすく解説することを目指す無料のオンラインパソコン教室

岐阜のパソコン教室「パソコンスクール・テルン」

Excel VBA 基礎講座 ファイル操作

2024年11月8日

今回のExcelVBA基礎講座では、ファイルを作成し保存をしたり削除するマクロを作成していきます。

複数のファイル作成も、Do Loopで処理を繰り返すことで簡単に作成することが可能です。

今回も動画の解説で学びながら、演習問題にもチャレンジしていきましょう。

ファイル操作 1.フォルダを作成する

フォルダを作成する

●ソース

Sub Sakusei( )

On Error Resume Next

MkDir(“書類”) //書類という名前のフォルダを作成する

On Error GoTo 0 //この記述で、On Error Resume NextからOn Error GoTo 0の間の命令に対しエラーが出ても、エラー表記をしない

End Sub

ファイル操作 2.シートを新しいファイルとして保存する

シートを新しいファイルとして保存する

●ソース

Sub Hozon( )

Sheets(“Sheet2”).Name=”東京支店” //Sheet2の名前を”東京支店”に変更する

Sheets(“東京支店”).Copy //東京支店のsheetをコピーして新しいファイルを作成する

Application.DisplayAlerts=False //同名のファイルが存在する場合アラートを表示せずに上書き保存をする

ActiveWorkbook.SaveAs “東京支店.xlsx” //上記ファイルを保存する

Application.DisplayAlerts=Ture //処理を終えたらアラート設定を戻す

ActiveWorkbook.Close //ファイルを閉じる

End Sub

ファイル操作 3.ファイルの削除

ファイルの削除

●ソース

Sub Sakujo( )

On Error Resume Next

Kill”東京支店.xlsx” //”東京支店”のファイルを削除する

On Error GoTo 0

End Sub

この単元の演習問題

問題1:エクセルを起動し、sheet1に下図のようにデータを入力し、入力後、sheet2を追加し、右図のようにデータを入力します。入力後、マクロ有効ブックとして、ファイル名「名簿」として保存します。

問題2:VBAを起動し、標準モジュールを追加後、以下のようにマクロを記述し、動作を確認します。

Sub nyuryoku( )

namae=Range(“a4”).Value

Worksheets(“Sheet2”).Activate //sheet2を選択する

ActiveSheet.Range(“a3”).Value=namae //セルA3に山田と入力

Worksheets(“Sheet1”).Activate //sheet1を選択する

End Sub

問題3:問題2のマクロに手を加えていき、担当者全員に対して、sheet2のセルA3に担当者を入力した後、そのsheet2の内容をそれぞれの担当者をファイル名として保存するようにマクロを完成させてください。(下図参考)

※名簿リストの担当者を増やした場合にその担当者もファイルとして保存されるようにする

演習問題解説1

演習問題解説2

●ソース

Sub Nyuryoku( )

Sheets(“sheet1”).Activate //sheet1を選択

Range(“a4”).Select

Do While ActiveCell.Value<>””

tanto=ActiveCell.Value

Worksheets(“Sheet2”).Name=tanto //sheet2の名前を変数tantoの内容に変更

Sheets(tanto).Activate

Range(“a3”).Value=tanto //sheet(tanto)のセルA3にtantoの内容を入れる

Sheets(“sheet1”).Activate

Sheets(tanto).Copy //sheet(tanto)をコピーして新しいファイルを作成する

basyo=thiswork.book.Path&”¥お礼¥” //”お礼”フォルダを変数basyoに入れる(thiswork.book.Path=デスクトップ)

ActiveWorkbook.SaveAs basyo & tanto & “.xlsx” //sheet(tanto)を”お礼”フォルダに”tanto”.xlsxのファイル名で保存する

ActiveWorkbook.Close

Sheets(tanto).Name=”Sheet2″

ActiveCell.Offset(1,0).Select

Loop

End Sub

関連サイト

パソコン教室

パソコンスクール・テルン岐阜・穂積・大垣教室 楽しく学ぶ・通うパソコン教室あもる

パソコン修理・販売・買取・サポート

パソコンの修理・販売・買取・サポート