
カテ間違いしてしまいましたので再度投稿します。
よろしくお願いいたします。
上司からの依頼で困っています。
添付のような、マクロボタンを設定し、
・登録ボタンを押したら該当時間の下の表のセルが塗りつぶされる
・削除ボタンを押したら削除される
・表のセルをクリックしたら、名前、内容などが表示される
ように、することは可能でしょうか?
マクロは初心者ですが絶対に完成させろといわれてしまいました。。。
そもそも、このような作りこみは可能でしょうか?
ちなみに、この表は数人が共有して使う予定です。
以上、お願いいたします。

No.6ベストアンサー
- 回答日時:
> 後は削除させるのに取り掛かります。
がんばってください。
でも、さきほどのではいくらでも重複予約ができてしまいますね。
きっと上司に言われると思いますよ。
sei_s95さんががんばってる間に、わたくしはさきほどのコードにダブルブッキング防止機能を付加してみました。
こんなのはどうでしょう?
Sub 登録()
Dim x As Long, y As Long, z As Long, i As Long
Dim ws As Worksheet
Dim Rng As Range, c As Range
Set ws = Sheets("TEST")
With Sheets("Sheet1")
x = .Range("A2:A50").Find(What:=ws.Range("D2").Value, LookIn:=xlFormulas, _
LookAt:=xlWhole).Row
y = .Rows(1).Find(What:=ws.Range("D3").Text, LookIn:=xlValues, _
LookAt:=xlWhole).Column
z = .Rows(1).Find(What:=ws.Range("D4").Text, LookIn:=xlValues, _
LookAt:=xlWhole).Column - 1
Set Rng = .Range(.Cells(x, y), .Cells(x, z))
For Each c In Rng
If c.Interior.ColorIndex <> xlNone Then
i = i + 1
End If
Next c
Select Case True
Case i = Rng.Count
MsgBox "ダブルブッキング!!", vbCritical, "Σ( ̄ロ ̄lll) ": End
Case i > 0
MsgBox "指定時間の一部が予約されています。", vbCritical, "ヾ( ̄□ ̄; )ノ!": End
Case Else
MsgBox "予約しました。", vbInformation, "(´^∇^)σ"
End Select
With Rng
.Interior.ColorIndex = 6
.ClearComments
With .Cells(1)
.AddComment
.Comment.Visible = False
.Comment.Text Text:=ws.Range("A2").Value & "/" & ws.Range("D3").Text
End With
End With
End With
End Sub
LookAt:=xlWhole).Row
y = .Rows(1).Find(What:=Range("D3").Text, LookIn:=xlValues, _
LookAt:=xlWhole).Column
z = .Rows(1).Find(What:=Range("D4").Text, LookIn:=xlValues, _
LookAt:=xlWhole).Column - 1
.Range(.Cells(x, y), .Cells(x, z)).Interior.ColorIndex = 6
.Range(.Cells(x, y), .Cells(x, z)).ClearComments
With .Cells(x, y)
.AddComment
.Comment.Visible = False
.Comment.Text Text:=Range("A2").Value & "/" & Range("D3").Text
End With
End With
End Sub
この回答への補足
重ね重ねありがとうございます!
私も、Wブッキングは気になっていました。。。
さっそく試してみます。
ちなみに、削除は何とか完成させることができました。
本当にmerlionXXさんのおかげです。
本当にありがとうございます。
No.7
- 回答日時:
merlionXXです。
もうお気づきとは思いますが、ANo6で貼り付けたコードの下に、なぜか余分な14行がはりついていました。
(わたしのコピペミスに決まってますが)
End Subの下の14行は削除してください。
No.5
- 回答日時:
ANo4 merlionXXです。
> 実際は入力を別シートにするので以下のようにしてみました。
> アドバイスいただけましたら幸いです。
ご自身でアレンジできないなら最初からありのままの姿で質問なさったほうが良いのでは?
二度手間になります。
お書きになったコードを見る限り、
会議室予約表はSheet1にある。
日付欄はA2:A50
時間欄は1行目
入力するのはSheet1でないが、シート名は不明。但し、マクロ実行時には必ずアクティブである。
そのアクティブなシートで
日付はD2
開始時間はD3
終了時間はD4
A2セルは、多分予約者名か会議名
普通、こんなことは回答者に解読させるのではなく質問者が明記することだと思いますよ。
入力するシート名がわからなかったので、とりあえず TEST というシート名としました。
下記コードの、Set ws = Sheets("TEST") の TEST 部分を実際のものに書き換えてください。
Sub 登録()
Dim x As Long, y As Long, z As Long
Dim ws As Worksheet
Set ws = Sheets("TEST")
With Sheets("Sheet1")
x = .Range("A2:A50").Find(What:=ws.Range("D2").Value, LookIn:=xlFormulas, _
LookAt:=xlWhole).Row
y = .Rows(1).Find(What:=ws.Range("D3").Text, LookIn:=xlValues, _
LookAt:=xlWhole).Column
z = .Rows(1).Find(What:=ws.Range("D4").Text, LookIn:=xlValues, _
LookAt:=xlWhole).Column - 1
.Range(.Cells(x, y), .Cells(x, z)).Interior.ColorIndex = 6
.Range(.Cells(x, y), .Cells(x, z)).ClearComments
With .Cells(x, y)
.AddComment
.Comment.Visible = False
.Comment.Text Text:=ws.Range("A2").Value & "/" & ws.Range("D3").Text
End With
End With
End Sub
この回答への補足
本当に申し訳ありません。
おっしゃっる通りですよね。
お恥ずかしい限りです。
お陰様で、表示させるところまではできました。
後は削除させるのに取り掛かります。
取り急ぎ、お詫びと御礼まで。
本当にありがとうございました。
No.4
- 回答日時:
わたしのはまたエクセル2000なので、あなたのでもできるかどうかは自信がありませんが・・・。
データの配置は添付画像を見てください。
Sub 登録()
Dim x As Long, y As Long, z As Long
x = Range("A11:A41").Find(What:=Range("A4").Value, LookIn:=xlFormulas, _
LookAt:=xlWhole).Row
y = Rows(10).Find(What:=Range("A5").Text, LookIn:=xlValues, _
LookAt:=xlWhole).Column
z = Rows(10).Find(What:=Range("A6").Text, LookIn:=xlValues, _
LookAt:=xlWhole).Column - 1
Range(Cells(x, y), Cells(x, z)).Interior.ColorIndex = 6
Range(Cells(x, y), Cells(x, z)).ClearComments
With Cells(x, y)
.AddComment
.Comment.Visible = False
.Comment.Text Text:=Range("A2").Value & "/" & Range("A3").Value
End With
End Sub
Sub 削除()
Dim x As Long, y As Long, z As Long
x = Range("A11:A41").Find(What:=Range("A4").Value, LookIn:=xlFormulas, _
LookAt:=xlWhole).Row
y = Rows(10).Find(What:=Range("A5").Text, LookIn:=xlValues, _
LookAt:=xlWhole).Column
z = Rows(10).Find(What:=Range("A6").Text, LookIn:=xlValues, _
LookAt:=xlWhole).Column - 1
Range(Cells(x, y), Cells(x, z)).Interior.ColorIndex = xlNone
Range(Cells(x, y), Cells(x, z)).ClearComments
End Sub

この回答への補足
ご丁寧にありがとうございます。
一度、ズレはありましたが、色が付いて、コメントが表示されました!
でもまた、うまくいかなくなってしまいました。。。
実際は入力を別シートにするので以下のようにしてみました。
アドバイスいただけましたら幸いです。
Sub 登録()
Dim x As Long, y As Long, z As Long
x = Range("sheet1!A2:A50").Find(What:=Range("D2").Value, LookIn:=xlFormulas, _
LookAt:=xlWhole).Row
y = Rows("sheet1!1").Find(What:=Range("D3").Text, LookIn:=xlValues, _
LookAt:=xlWhole).Column
z = Rows("sheet1!1").Find(What:=Range("D4").Text, LookIn:=xlValues, _
LookAt:=xlWhole).Column - 1
Range(Cells(x, y), Cells(x, z)).Interior.ColorIndex = 6
Range(Cells(x, y), Cells(x, z)).ClearComments
With Cells(x, y)
.AddComment
.Comment.Visible = False
.Comment.Text Text:=Range("A2").Value & "/" & Range("D3").Value
End With
End Sub
No.3
- 回答日時:
尚、作成時ですが、マクロとして記録した後にそのコードを使って作成する方法があります
手元にExcel2007しか無い為に多少用語が違っているかもしれませんが
マクロ機能:Alt+F8
行った操作が記録でき、コードになって格納されます
VBAEditor:Alt+F11
実際に動作させるコードを記述するのはここです。
ちょっと画像が粗いので、タブが表示されているかどうかは判らないのですが
実際に開発する際には、設定で開発タブ等を表示させた方がいいかと思います。
ボタンやコンボボックス(ドロップダウンリスト)等、必要な物を画面上に配置する際にも使う筈です
Excel VBAに関しては色々サイトがありますので、やりたい事は割と見つかり易い方かと思います。
http://excelvba.pc-users.net/
No.2
- 回答日時:
当方PG、今年で3年目です。
どういう会社なのかは今一つ分かりませんが…
PGとか居ない普通の会社であれば、こういうモノを結構甘く見てるような気がします
これを完成させても、今後も大変かもしれませんが…それは置いといて。
○仕様についての疑問
作り込みは可能です。しかし、どのように作るべきかはもう少し悩むべきだと思います
1.日付を入力する欄が見えませんが、何処で入力しますか?
(ボタンを押した当日?入力欄が足りない?)
2.削除ボタンを押したとき、何を基準に削除しますか?
(開始時間、終了時間、または両方?)
○注意点
あとで困るかと思いますので、いきなり酷い事を云いますが
実用に耐えられないかと思います。
●共有
1.共有する際には「同時に」と云う点を考えなければいけない事
2.他人の編集を即座に反映させられるような物を考えなければならない事
(他人に気付かずに上書きされたら意味がないですよね…)
●バージョンの問題
1.画面はExcel2010ですが、全員2010を使用していますか?
バージョンが違う場合は一部の関数や動作が異なります(※対応する事は可能ですが…
●例外
1.時間以外を入力した場合
2.開始時間と終了時間を逆にした場合
3.文字や記号、日付を入力した場合
4.セルをカットアンドペーストした場合
etc...
これらが出来ないようにロックを掛けたり、入力を確認したりするステップがそこそこあります
その辺りは上司と色々確認しあって決めないといけないと思いますが…
…所で、期限はどれくらいありますでしょうか…?
この回答への補足
補足させていただきます。
ご指摘の通り、こういったものを作成しても後が困ったり、実用に耐えない
場合があることは重々承知しています。(ver.の事も含めて)
ですが、上司に、その旨説明しても納得してもらえず、質問するに至りました。
とにかく作成しろの一点張りなのです。。。
上司は海外出張の為、今週いっぱいは居ません。期限はその間です。
●日付について
入力欄を漏らしていました。
貼り付けたものはあくまでもイメージ図です。
●仕様について
削除:出来るなら、全て削除できるのが望ましいです。
●バージョンの問題
全員2010ではありません。
異なるバージョンでの関数や動作が異なるのは認識していますが
他バージョンでも動作できるのが望ましいです。
●例外について
あくまでも、必要事項を決められた通りに入力するということを
前提で構いません。
●共有
複数人が同時に入力出来なくてもかまいません。
以上、補足でした。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/08 15:45
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 16:07
- Visual Basic(VBA) VBA 登録ボタンを省略してエンターキーで作業 4 2022/07/09 22:29
- Word(ワード) Word のマクロについての質問です。 ボタンを押すと登録したブックマーク先にジャンプする機能(リン 3 2023/08/16 12:17
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
歳とったな〜〜と思ったことは?
歳とったな〜〜〜、老いたな〜〜と思った具体的な瞬間はありますか?
-
もし10億円当たったら何に使いますか?
みなさんの10億円プランが知りたいです!
-
コーピングについて教えてください
皆さんはストレスを感じたとき、どのような方法や手段、テクニックで対処していますか?
-
【お題】斜め上を行くスキー場にありがちなこと
運営も客も一流を通り越して斜め上を行くスキー場にありがちなことを教えて下さい。
-
excelで会議室予約表の作成(マクロ)
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Application.Runエラー(1004)
-
別シートのマクロを実行する方法
-
エクセルのマクロボタンが編集...
-
Access終了時にマクロまたはVBA...
-
access2010 コマンドまたはアク...
-
エクセルVBAで、ボタンの文字を...
-
別シートのトグルボタンを指定...
-
InputBox内の表示について
-
特定マクロが実行されたか確認...
-
マクロとモジュールの違いを教...
-
マクロ 戻るボタンを押したらシ...
-
ACCESS エラーメッセージ表示...
-
特定のシートだけ印刷はマクロ...
-
オートシェイプの黄色いハンド...
-
アクセスのマクロについて
-
ExcelのVBAでDisplayalertsで警...
-
エクセル VBA SendKeys ループ...
-
AccessでExcelファイルを印刷
-
AccessマクロをVBAを使ってデザ...
-
excelで会議室予約表の作成(マ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別シートのマクロを実行する方法
-
Application.Runエラー(1004)
-
エクセルのマクロボタンが編集...
-
Access終了時にマクロまたはVBA...
-
access2010 コマンドまたはアク...
-
エクセルVBAで、ボタンの文字を...
-
InputBox内の表示について
-
マクロ 戻るボタンを押したらシ...
-
アクセスのマクロについて
-
特定のシートだけ印刷はマクロ...
-
シート保護を掛けたまま並べ替...
-
AccessでExcelファイルを印刷
-
エクセル VBA SendKeys ループ...
-
ExcelVBAで右クリックメニュー...
-
アクセス:検索フォームボタンに...
-
マクロとモジュールの違いを教...
-
今日の日付の範囲を指定して印...
-
ExcelのVBAでDisplayalertsで警...
-
ワードでのラベル作成の自動化
-
特定マクロが実行されたか確認...
おすすめ情報