シートを一枚ずつ切り出して、それぞれ一つのブックとして保存(8) | The Road to EXCELER ~エクセラーへの道~

The Road to EXCELER ~エクセラーへの道~

エクセルの機能を基本から紹介していきます。お仕事で日々エクセルを使っておられる方に読んでいただければ仕事の効率アップ間違い無しです。

銀座「紅葉時雨」The Road to EXCELER ~エクセラーへの道~
「こうようしぐれ」と読むそうです。

写真の紅葉が目の前に見える個室で、まぁ特にうるさいわけでもなく、落ち着いて飲めました。

(‐^▽^‐)


こういうリーズナブルな「コンセプト居酒屋」はちょっとした飲み会にはおもしろくていいですね。
季節外れ感はタップリでしたが…
(・∀・)

さて、いよいよゴールデンウィークですね。みなさん、お出かけの計画は完璧でしょうか。。

私は特に大きな予定も無く、ゴロゴロと過ごせれば…なぁんて言ってたら「あっ!」という間に終わっちゃうんですよね、休みって。。

( ̄0 ̄;ノ

゚・*:.。..。.:*・゚゚・*:.。..。.:*・゚ ゚・*:.。..。.:*・゚゚・*:.。..。.:*・゚ ゚・*:.。..。.:*・゚


前回はここ↓まで終了しました。

「For~Next」を付けたしたのと、赤字BOLDが自動記述を変更した点です。


For i=1 To Worksheets.Count

Sheets(i).Select …①
Sheets(i).Copy …②
ActiveWorkbook.SaveAs Filename:="C:\エクセラー\TEST2.xls",  FileFormat:=xlNormal _, Password:="", WriteResPassword:="",  ReadOnlyRecommended:=False, _CreateBackup:=False …③
Windows("Book1.xls").Activate …④
Next i



③の意味は、シートをコピーしてできた新しいファイルに「TEST2.xls」という名前を付けて、「C\エクセラー」フォルダに保存する、ということでしたね。

(青字以降、後半の、ファイルフォーマットがどうのこうのとか、パスワードがどうのこうのとかは、見るからにオプション設定をどうするかという話なので、ここではそのままイジらないことにしましょう。)


この部分について、「ファイル名を、A1セルに入力されている文字にする」というコードに変更しましょう。

A1セルの文字を取得するのは、


Range("A1")


だけでOKです。

そして、文字列は、「&」を使って結合させることができます。

例えば、a=3 のとき、"デスクワークを"&a&"倍効率化" とすると、"デスクワークを3倍効率化"という一つの文字列ができます。


なので、青字で書いたファイル名のところを、


"C:\エクセラー\" & Range("A1") & ".xls"


としておけば、A1セルに入力されている文字をファイル名とすることができます。


8回にわたってお届けしてきた「シートを一枚ずつ切り出して、それぞれ一つのブックとして保存」するマクロは、最終的にこのようになります。


For i=1 To Worksheets.Count

Sheets(i).Select
Sheets(i).Copy
ActiveWorkbook.SaveAs Filename:="C:\エクセラー\" & Range("A1") & ".xls",  FileFormat:=xlNormal _, Password:="", WriteResPassword:="",  ReadOnlyRecommended:=False, _CreateBackup:=False
Windows("Book1.xls").Activate
Next i



コメント文付きでプログラム全体を添付しておきますね。

ちなみに、半角スペース+"_"(アンダースコア)は、単に折り返しを意味しているだけですので気にしないでください。

マクロは一行ずつ命令文を完結させるので、一文が長くなってくると、「次の行も続いてますよ」ということを示すために付けます。


The Road to EXCELER ~エクセラーへの道~