6.[PG2]Excelで、ファイル一覧作成し、ファイル名変更してみよう.part1

こちら第6回「プログラマー養成講座」のパート1になります!
目次はこちらからご参照下さい!

まずは少し前置きとしてExcelや、VBの簡単な説明から。

Excelとは
Microsoft社がパソコンのオフィスワークで使うために作成したソフトウェアで、これを使わない企業はないといっても過言ではありません。(最近はGoogleドキュメントのスプレッドシートに少し押され気味?)

VB(Visual Basic:ヴィジュアル ベーシック)とは

これから、ひさきさんにはExcelに搭載されているスクリプト言語のVBAというものを使ってもらいます。その過程でVBについてちょっとだけ説明します。Visual Basicとは、マイクロソフト社が開発したプログラム言語です。VBは色々は派生プログラムがありまして、代表的なものは、以下4つです。

1.VB(Visual Basic for :ヴィジュアル ベーシック、ぶい びー)
主な用途としてはWindows用のGUIアプリケーションを作成。今は開発が終了しているが、VB.NETが後継言語として開発されている。最後のバージョンはVB6.0。

2.VBA(Visual Basic for Applications:ぶい びー えー)
マイクロソフト社のアプリケーションに搭載するように開発したVB。Office製品を利用していれば、VBAがお手軽に使うことができる点からも愛用者が多い。愛用者が多いから、インターネット上での情報収集も楽にできる。プログラム言語を使う上で、一定数以上の利用者がいることはとても重要です。(継続開発が期待できるし、情報収集に困らない)

3.VBScript (Visual Basic Scripting Edition:ぶい びー えす)
WindowsOS上で動作するVB。Microsoft社はOSコマンドが標準でもあるが、VBと同じような文法で書けるVBSを愛用する人も多い。VBSには他のVBシリーズとは違い、変数の型がない。(バリアント型のみ)

4.VB.NET(Visual Basic .NET:ぶい びー ドットネット)
今はこっちが「VB」と言われる。マイクロソフト社が開発した、VBにネットワーク開発機能を追加したVB。Windowsアプリケーションの作成、WEBサイトの作成、コンソールアプリケーション、クラスライブラリなどの開発ができる。

この4系統は、同じVBという基盤の上に開発されて入れていて、細かい仕草や挙動に多少の違いがありますが、ベースが同じなので、どれか1つでも覚えれば、他の開発にも活かすことができます。
顔に「?」が書いてありますねw。VBは、オフライン世界の英語にあたります。VBが「英語」として、VBAは「西海岸英語」、VBSは「オーストラリア英語」、VB.NETは「イギリス英語」みたいな感じで、基本は同じだけどちょっと文法や流行り言葉が違うようなイメージですかね。

今回は上記の中でも、特に実用性のありそうなVBSとVBAを習得していこうと思います。

実際にVBS/VBAを使ってみよう

では今回も、以下の作業を進めていきましょう
1.VBSで「VB」とメッセージ表示しよう
2.Excel VBAで「VB」とメッセージ表示しよう

それぞれ、先週作ったCドライブのworkフォルダ内に、”VB”というフォルダを作って、「sample.vbs」と「sample.xlsm」というファイルを作ることにしましょう。vbsはテキストファイルで、xlsmファイルはExcelのマクロありの形式ですね。Excelを新規で開いて「名前を付けて保存」とかするときに選択できると思います。さぁ、やっていきましょう。

1.VBSで「VB」とメッセージ表示しよう
・テキストファイルを「sample.vbs」という名前で作成
・テキストファイルをメモ帳で開く。ダブルクリックするとVBSが実行されます。内容を編集するには、右クリックから「編集」を選びます。
・「msgbox "VB"」と記入して、保存して閉じる
・「sample.vbs」をダブルクリックなどで実行する
・メッセージが表示されることを確認し、OKを押して閉じる

2.Excel VBAで、「VB」とメッセージ表示しよう
・スタートメニューなどからExcelを起動し「空白のブック」を作る
・ファイルメニューなどから「名前を付けて保存」で「Excelマクロ有効ブック」を選択して、「sample.xlsm」という名前で保存する。(xlsx形式とxlsm形式は、拡張子を変えるだけではなく内部的にも違う形式になっているので、間違えてsample.xlsxで作ったファイルの拡張子を手でsample.xlsmに変えるとエラーになります。「名前を付けて保存」から保存しましょう)
・Excelを選択した状態で、ALTキー+F11キーを押し「Microsoft Visual Basic for Applications - sample.xlsm」というウィンドウを開く
・左側か右側にフォルダエクスプローラーみたいな、枠が表示されていて「Sheet1(Sheet1)」と「ThisWorkbook」とあるので、「ThisWorkbook」をダブルクリックすると、真ん中の画面にコードエディタが開きます
・コードエディタ内に以下のコードを書く

Private Sub test()
MsgBox "VB"
End Sub

・コードエディタにカーソルがある状態で、F5キーを押す
・メッセージが表示されることを確認し、OKを押して閉じる
・今度は、カーソルがプログラムコードにある状態にして、F8キーを押すと、1行ずつ実行されるモードになります
・F8キー、1回で「Private Sub test()」が実行され、2回目で「Msgbox "VB"」が実行されるので「OK」を押し、3回目で「End Sub」が実行されて、1行ずつ実行されるモードが終わります

これで、VBSとVBAをそれぞれ実行することに成功しました。実行しているプログラムコードの「msgbox "VB"」というところは同じなのです。また、Excel VBAには一気に全部処理をするF5キーと、1行ずつ実行するF8キーがあり、この1行ずつ実行されるものはプログラム初心者が勉強する際に、動きがわかりやすい要素の1個となっています。

では、今日のお題、プログラムの仕様を発表します!

α.ファイル一覧の出力プログラム仕様(VBS)

・目標25分
・ファイル名は「FileView.vbs」
・「C:\work\VB」フォルダの中にあるファイルを一覧でメッセージボックスで表示する
・フォルダは出力しない
・サブフォルダ内のファイルは対象外
・隠しファイルは可能であれば出力
※「一覧で表示」とは、ファイル1個ずつ表示するのではなく、1画面ですべてのファイルが見えるようにすること。想定としては20-30ファイルくらいです。それ以上の場合に、表示が崩れてもOKです。
※ファイルの並び順は問わない

β.ファイル一覧の出力プログラム仕様(Excel VBA)

・目標15分
・ファイル名は「ファイル操作.xlsm」
・「C:\work\VB」フォルダの中にあるファイルを「ファイル一覧」シートに出力する
・シート上に「読取」ボタンを設置
・A1から、下へ1行に1ファイル名を出力していく
・ファイルの抽出などの細かい仕様はVBSと同じとする
・実行時に、以前の情報を「ファイル一覧」シートから削除すること

γ.ファイル名変更プログラム仕様(Excel VBA)

・目標30~60分
・ファイルは「ファイル操作.xlsm」に機能追加とする
・変更したいファイル名のセルの右隣のセル(つまりB行)に変更後のファイル名を記入
・シート上に「実行」ボタンを設置
・A1から下に処理を実施し、空になったら終了とする
・「実行」ボタンを押したときに、変更後のファイル名に記入のあるファイルの名前を変更する
・結果はC行に表示する
 成功した場合は青字で「成功」
 ファイルが変更できない場合などのエラー時は赤字で「エラー」
 実行前と実行後で同じファイル名の場合は黒字で「変更なし」
・「ファイル操作.xlsm」のファイル名は変更しない
・ファイル名変更前に、ファイル存在チェックを実施し、すでにファイルが存在する場合はエラーとして、「既にそのファイル名は存在します」といったメッセージを結果セルに表示する

さて、今回はいよいよプログラムって感じになってきます。今回は3個もあるので、しっかり読み込んで、質問があれば事前に確認して下さい。読込時間は、プログラム時間には入れません。

長くなりましたので、今回はここらへんできります!
次回から「ひさき実践」編になりますので、こうご期待!

この記事が気に入ったらサポートをしてみませんか?