Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4736 / 13646 ツリー ←次へ | 前へ→

【54831】先頭のシートに表示されている内容で名前(ファイル名)をつけて保存する方... kotaro 08/4/1(火) 10:42 質問[未読]
【54832】Re:先頭のシートに表示されている内容で名... マクロマン 08/4/1(火) 11:18 発言[未読]
【54834】Re:先頭のシートに表示されている内容で名... kotaro 08/4/1(火) 12:04 発言[未読]
【54835】Re:先頭のシートに表示されている内容で名... マクロマン 08/4/1(火) 12:16 発言[未読]
【54836】Re:先頭のシートに表示されている内容で名... VBWASURETA 08/4/1(火) 12:20 発言[未読]
【54837】Re:先頭のシートに表示されている内容で名... kotaro 08/4/1(火) 12:24 発言[未読]
【54840】Re:先頭のシートに表示されている内容で名... わいわい 08/4/1(火) 12:40 発言[未読]
【54841】Re:先頭のシートに表示されている内容で名... VBWASURETA 08/4/1(火) 12:51 発言[未読]
【54838】Re:先頭のシートに表示されている内容で名... VBWASURETA 08/4/1(火) 12:25 発言[未読]
【54839】Re:先頭のシートに表示されている内容で名... マクロマン 08/4/1(火) 12:36 発言[未読]
【54842】Re:先頭のシートに表示されている内容で名... kotaro 08/4/1(火) 12:56 お礼[未読]

【54831】先頭のシートに表示されている内容で名前...
質問  kotaro  - 08/4/1(火) 10:42 -

引用なし
パスワード
   先頭のシートに表示されている内容で名前(ファイル名)をつけて保存する方法について、どなたかアドバイスください。

先頭のシートが常に同じであれば、
ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\12345\My Documents\" & _
CStr(Sheets("Sheet1").Range("A1")) & ".xls", _
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
FileFormat:=xlNormal, Password:="", _
WriteResPassword:="",ReadOnlyRecommended:=False, _
CreateBackup:=False
のようにできるのです。

これが、先頭のシートが常に同じ名前ではなく、にもかかわらず先頭のシートのセル「A1」に表示されている内容でファイル名を付ける場合は、どのようにマクロを設定すればいいでしょうか。

どなたか、アドバイスをお願いいたします。

【54832】Re:先頭のシートに表示されている内容で...
発言  マクロマン  - 08/4/1(火) 11:18 -

引用なし
パスワード
   シートインデックスを使ってはいかがでしょう?

MsgBox Sheets(1).Name

なお、SheetとWorksheetは区別があります。

【54834】Re:先頭のシートに表示されている内容で...
発言  kotaro  - 08/4/1(火) 12:04 -

引用なし
パスワード
   マクロマンさん

返信ありがとうございます。
アドバイスくださった方法では、MsgBoxにその都度、先頭のシートの名前を
入力していくやり方ですよね。
これを自動的に先頭のシートを認識して処理を進める、という形にしたいのです。

最初の質問での説明が足りていませんでした。
もし、よろしければ重ねてアドバイスいただけますでしょうか。

【54835】Re:先頭のシートに表示されている内容で...
発言  マクロマン  - 08/4/1(火) 12:16 -

引用なし
パスワード
   >アドバイスくださった方法では、MsgBoxにその都度、先頭のシートの名前を
>入力していくやり方ですよね。

??
MsgBoxには入力は出来ません。表示するだけです。

MsgBoxに一番左のシート名が表示されませんでしたか?

【54836】Re:先頭のシートに表示されている内容で...
発言  VBWASURETA  - 08/4/1(火) 12:20 -

引用なし
パスワード
   kotaroさん、マクロマンさん

こんにちは。
多分話が噛み合ってない気がしますよ^^;

kotaroさんは多分、保存すると同時に自動で名前を変えて
保存できるようにしたいことではないですか?

マクロマンさんはシート名があっているかの確認ではないでしょうか?

【54837】Re:先頭のシートに表示されている内容で...
発言  kotaro  - 08/4/1(火) 12:24 -

引用なし
パスワード
   ▼VBWASURETA さん:

返信ありがとうございます。

>kotaroさんは多分、保存すると同時に自動で名前を変えて
>保存できるようにしたいことではないですか?

まさしくそのとおりです。
説明の仕方がよくなかったようです。

▼マクロマンさん

MsgBoxについては、私の勘違いでした。大変失礼しました。
アドバイスくださったマクロで、先頭のシート名がMsgBoxに
表示されました。

【54838】Re:先頭のシートに表示されている内容で...
発言  VBWASURETA  - 08/4/1(火) 12:25 -

引用なし
パスワード
   訂正です。

自分の認識としては、A1の内容が同じであれば上書きで、
内容が異なれば自動で名前をつけて保存にするように
イベントでしたいということではないでしょうか?

【54839】Re:先頭のシートに表示されている内容で...
発言  マクロマン  - 08/4/1(火) 12:36 -

引用なし
パスワード
   >アドバイスくださったマクロで、先頭のシート名がMsgBoxに
>表示されました。

これでSheets(1)
で一番左のシートを取得できるのが分かったと思います。
これを変数に取込んで、

>kotaroさんは多分、保存すると同時に自動で名前を変えて
>保存できるようにしたいことではないですか?

に組み込んでやればいいです。


MsgBox **

でサジェスチョンするのはほかでもよく使われる手だと思う
のですが。

【54840】Re:先頭のシートに表示されている内容で...
発言  わいわい  - 08/4/1(火) 12:40 -

引用なし
パスワード
   横から失礼します。
マクロマンさんは
CStr(Sheets(1).Range("A1")
こうしたらいいんじゃないですか!
のヒントをくれたんでしょう

【54841】Re:先頭のシートに表示されている内容で...
発言  VBWASURETA  - 08/4/1(火) 12:51 -

引用なし
パスワード
   ▼わいわい さん:

シートインデックスが1番目の
シート名をString型で取得するということですね!

【54842】Re:先頭のシートに表示されている内容で...
お礼  kotaro  - 08/4/1(火) 12:56 -

引用なし
パスワード
   返信くださった皆様

私の言葉足らずな問いかけで、皆様にはご迷惑をおかけしました。
取り急ぎ、私のやりたかったことは、わいわいさんが教えてくださった
マクロで解決しました。

MsgBoxの使い方(マクロマンさんの言われる「よく使われる手」)は
勉強してみようと思います。

VBWASURETAさん、フォローありがとうございました。

まだVBAは基礎もよくわかっていない素人です。
これからも質問の仕方などにも気をつけて、この質問箱は利用させて
いただきたいと思っています。

4736 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free