• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル マクロについて)

エクセルマクロでリセットボタンを作成する方法

このQ&Aのポイント
  • Windows10 Excel2011を使用している場合、エクセルマクロを使ってリセットボタンを作成する方法について説明します。
  • この方法では、G5からBP7までの範囲をクリアし、曜日に応じてG5またはG6に〇を表示することができます。
  • 具体的なプログラムの例も提供されています。

質問者が選んだベストアンサー

  • ベストアンサー
  • SI299792
  • ベストアンサー率47% (780/1631)
回答No.2

整理すると、勤務は○、非勤務はOff 5行目、月~土は○、日はoff 6行目、火・木・土は○、それ以外はoff ですか。 実際に表を作ってみたら、BP列までで62日分だったので、2ヶ月分だと思います。 G3から右へ数字が入っていると仮定して。 G4: =TEXT(G3,"AAA") G5: =IF(G4<>"日","○","off") G6: =IF(FIND(G4,"火木土"&G4)<4,"○","off") 右へコピペできます。その方がいいと思います。 文字列にしたい場合でも、この関数をそのまま使った方が早いです。 4行目は上記関数が入っているとします。 ' Sub Macro1() '   [G5:BP5] = "=IF(G4<>""日"",""○"",""off"")"   [G6:BP6] = "=IF(FIND(G4,""火木土""&G4)<4,""○"",""off"")"   [G5:BP6] = [G5:BP6].Value End Sub

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

説明では、シートでの、データの状況がよくわからない。 日付のあるセルについて(第3行目らしいが) (1)1か月分でなく1年分も1シートに収めているのか。 >G3に日付 スタート日付は、何年何月何日か? 次の日はどこの列に来るのか。何列目の飛び飛び列に現れる? (日付は、何列目ごとに現れるのか。) 推測では、横方向に日付を流しているのだろうね。 >BOBPまで とは? これで、なんのこっちゃと混乱した。 ーー 何列までデータを入れるつもりか? Sub test01() Range("BOP1").Select MsgBox Selection.Column End Sub でテストしてももしBOP列なら、第1758列に「るが。 ーー こんな横長の表を作っても、扱いにくいのでは? もっとデータベース的な処理を理解し、必要な範囲のデータに限り、画面に出すことを考えてはどうか。 ーー そもそも、日付セルの値で(日付シリアル値であること)で、WeekDayで曜日を判定し 週の7曜について、Case文を使って、場合を分ければ仕舞だろう。  初めてVBAをやるのか。 参考 VBA WeekDay http://officetanaka.net/excel/vba/function/WeekDay.htm VBA Case文 https://valmore.work/excel-vba-case/ Select Case num   Case 1, 3, 5, 7, 9  のように複数のケースを1行に列挙できるよ。 本質問では月・水・金の3つの曜日コードを、1行で指定できるよ。

関連するQ&A

専門家に質問してみよう