シートモジュールで操作していた消去マクロについて
シートが増えてきたこともあり、標準モジュールに移行させようと考えています。
クリックしたボタンがあるアクティブシートのindexを使い、Select caseにて分岐させて
いるのですが、その際に表示されるメッセージについても、使い分けをしたいと
考えています。
例えば
シート2なら、「名前シートのデータを一括消去します」
シート4なら、「利用シートのデータを一括消去します」のようになります。
Sub cell_cr2()
Dim w As Long
Dim msg As String
Dim ms2 As String
Dim ms4 As String
w = ActiveSheet.Index
msg = ms & w
ms2 = "名前シートのデータを一括消去します。よろしいですか?"
ms4 = "利用シートのデータを一括消去します。よろしいですか?"
If MsgBox(msg, vbOKCancel) = vbOK Then
Select Case w
と続くのですが、Msgboxに代入したmsgが上記のms2やms4に置き換わらず、
文字としてのms2,ms4となってしまいます。
MsgBox("ms" & w, vbOKCancel) としても、同様です。
どのように修正すればよろしいでしょうか?
No.4
- 回答日時:
No.3です。
前回回答でmsg = Worksheets(w).Name & "のデータを一括消去します。よろしいですか?"
というコードを投稿しましたが、丁寧さを欠いていました。
ご質問者の表現をそのまま用いるなら
msg = Worksheets(w).Name & "シートのデータを一括消去します。よろしいですか?"
とすることになります。
但し、シート名に「○○シート」と入っていると、「○○シートシートのデータを・・・」となりますので注意が必要です。
No.3
- 回答日時:
No.2さんのご指摘のとおり、Nameブロバティを使ってシート名を取得する方法が使えるなら、そちらがスマートだと思います。
Sub cell_cr2()
Dim w As Long
Dim msg As String
w = ActiveSheet.Index
msg = Worksheets(w).Name & "のデータを一括消去します。よろしいですか?"
If MsgBox(msg, vbOKCancel) = vbOK Then
Select Case w
'・・・・・・
End Select
End if
End Sub
で足りるのでは?
回答ありがとうございました。
構文の提示も助かりました。
No.2様が先にヒントを下さったので、そちらをベストアンサーと
させていただきます。
No.1
- 回答日時:
以下のようにしてください。
XXXXシートは、シート2、シート4以外のケースです。
--------------------------------------
Sub cell_cr2()
Dim w As Long
Dim msg As String
Dim ms2 As String
Dim ms4 As String
w = ActiveSheet.Index
If w = 2 Then
msg = "名前シートのデータを一括消去します。よろしいですか?"
ElseIf w = 4 Then
msg = "利用シートのデータを一括消去します。よろしいですか?"
Else
msg = "XXXXシートのデータを一括消去します。よろしいですか?"
End If
If MsgBox(msg, vbOKCancel) = vbOK Then
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Excel(エクセル) フォルダ内の全ブックのシート名を変更したい 7 2022/09/22 21:34
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- Visual Basic(VBA) VBAで、シート間の転記するコードをFOR~NEXTで教えてください。 9 2023/04/30 20:04
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
括弧があるとHYPERLINKで飛べな...
-
エクセルで複数のシートをフォ...
-
建築模型、カーブの作り方
-
Excel複数シートから日付と文字...
-
マグネットシートって・・・
-
Excel VBA シート名変更時、重...
-
マグナ250とマグナ50でパーツの...
-
車のシートがへたってきました...
-
XR250BAJAのシートのはずし方を...
-
バイクのシートを取り替えても...
-
リアシート無しで運転してたら...
-
原付 レッツシート開け方
-
エクセルVBA:他シートを選択す...
-
車のシートでおもらし
-
ドライブレコーダーのSDカード...
-
エクセルVBA 4行飛ばしで転記す...
-
XJR400 のシートを替えようと思...
-
芝生が根付かず苔ばかり生えて...
-
体育館フロアに敷くシートを教...
-
原付きを駐輪場に置いてると、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のシートをフォ...
-
括弧があるとHYPERLINKで飛べな...
-
電車のシートって何でこんな暑...
-
原付 レッツシート開け方
-
水の染み込んだバイクのシート...
-
シートベルトの固定解除
-
Excel複数シートから日付と文字...
-
ポップコーンの捨て方
-
BRIDEのシート張り替えってでき...
-
車のシートでおもらし
-
リアシート無しで運転してたら...
-
ポケットにミシンでワッペンを...
-
エクセルVBA 4行飛ばしで転記す...
-
メルセデスベンツ
-
【Excel Online】Excelデータの...
-
癒着してしまったテレビの液晶...
-
【Excel Online】特定シートの...
-
フォルツァ バッテリーを外して...
-
クルマのこのシートは走りのイ...
-
アルファード 7人乗りから8人...
おすすめ情報