カテ間違いしてしまいましたので再度投稿します。
よろしくお願いいたします。
上司からの依頼で困っています。
添付のような、マクロボタンを設定し、
・登録ボタンを押したら該当時間の下の表のセルが塗りつぶされる
・削除ボタンを押したら削除される
・表のセルをクリックしたら、名前、内容などが表示される
ように、することは可能でしょうか?
マクロは初心者ですが絶対に完成させろといわれてしまいました。。。
そもそも、このような作りこみは可能でしょうか?
ちなみに、この表は数人が共有して使う予定です。
以上、お願いいたします。
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
餃子を食べるとき、何をつけますか?
みんな大好き餃子。 ふと素朴な疑問ですが、餃子には何をつけて食べますか? 王道は醤油とお酢でしょうか。
-
一回も披露したことのない豆知識
あなたの「一回も披露したことのない豆知識」を教えてください。 「そうなんだね」と「確かに披露する場所ないね」で評価します。
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
ギリギリ行けるお一人様のライン
おひとり様需要が増えているというニュースも耳にしますが、 あなたが「ギリギリ一人でも行ける!」という場所や行為を教えてください
-
excelで会議室予約表の作成(マクロ)
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelVBAについて。
-
【マクロ】メッセージボックス...
-
【マクロ】複数の日付データをY...
-
Excelの警告について
-
excelVBAについて。
-
エクセル初心者です 用語とか良...
-
excelVBAについて。
-
excelVBAについて。
-
エクセル 別セルの2進数表示を...
-
フィルター時の、別の列に書い...
-
エクセルの関数ついて
-
最新I/e?のキャッシュクリア
-
excelVBAについて。
-
フィルターをかけた時の、別の...
-
スプレッドシート(エクセル) ...
-
Excelの数式について教えてくだ...
-
エクセルの数式バーのフォント...
-
Excel ショートカットで列、行...
-
エクセルシート保護を解除させ...
-
条件付き書式の効率的な設定の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別シートのマクロを実行する方法
-
Application.Runエラー(1004)
-
エクセルのマクロボタンが編集...
-
Access終了時にマクロまたはVBA...
-
access2010 コマンドまたはアク...
-
InputBox内の表示について
-
エクセルVBAで、ボタンの文字を...
-
シート保護を掛けたまま並べ替...
-
マクロ 戻るボタンを押したらシ...
-
ExcelVBAで右クリックメニュー...
-
Workbook_Openを起動時以外に呼...
-
AccessでExcelファイルを印刷
-
アクセスのマクロについて
-
エクセルの右クリックにオートS...
-
private sub にしたらマクロが...
-
エクセル VBA SendKeys ループ...
-
特定のシートだけ印刷はマクロ...
-
マクロとモジュールの違いを教...
-
ACCESS2000の終了時に自動で実行
-
エクセルのマクロ
おすすめ情報