[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『貼り付けないと動かないマクロ』(あへあへ)
WindowsXP Excel2002
前回 [[20091221170414]] 『貼り付けたら動くマクロ』(あへあへ) から方向転換で質問します。
ヒューマンエラーの観点から、大福シートに何かでも貼り付けをしないと コマンドボタンが反応しない、もしくは『何も貼り付けられてない!!出直してきな!』的な 感じのマクロを組みたいです。
ご指導ご教授よろしくお願いします。
その操作によって必ず埋まるセルがあるならば、そのセルの値をチェックして 空ならメッセージ表示して終了、埋まってたら処理を実行する。 という判断で良いかと思います。 例えば Sub test() If Worksheets("Sheet1").Range("A1").Value = "" Then MsgBox "貼っ付け忘れてないかい?", vbQuestion Exit Sub End If MsgBox "OK処理を開始しよう。キミとはイイ仕事が出来そうだ。", vbInformation End Sub (ご近所PG)
(ご近所PG)さんありがとうございます。 ただ、すみません。下記のように使えばいいのでしょうか?
Sub test() If Worksheets("大福").Range("A1").Value = "" Then MsgBox "貼っ付け忘れてないかい?", vbQuestion Exit Sub End If MsgBox "OK処理を開始しよう。キミとはイイ仕事が出来そうだ。", vbInformation Application.Run "'和菓子.xls'!Module2.綺麗綺麗マクロ" End Sub
(みやほりん)(-_∂)bさん リンク書き込みありがとうございました。
すみません(ご近所PG)さん、思ったとおりに動きました^^; 不安だったのでついつい書き込んでいました。 素敵なVBA教えていただき心から感謝しています。 このVBAならこれから先、別なファイルでも使っていけそうな気がします。 本当にありがとうございました。
(あへあへ)
もう一歩踏み込むとするなら、 コピペした内容が本来期待するものでなかった場合を考える事で、 より一層ヒューマンエラーを防ぐ作りとする事ができるかも知れません。 例えば貼り付けた結果の文字列中に必ず存在する文字があったとするならば、それを判定する。 Sub test() Const searchString As String = "いちご" '含まれているはずの文字列 Dim Target As Range Set Target = Worksheets("Sheet1").Range("A1") '空欄チェック If Target.Value = "" Then MsgBox "貼っ付け忘れてないかい?", vbQuestion Exit Sub End If '特定文字が存在しているかチェック If InStr(Target.Value, searchString) = 0 Then If MsgBox("ちょっと待った、どうやら中に肝心な『" & searchString & "』が含まれて居ないようだが……構わないのかい?" _ , vbQuestion + vbOKCancel + vbDefaultButton2) = vbCancel Then MsgBox "そうとも、『" & searchString & "』が無いんじゃお話にならない。もう一度確認だ。", vbExclamation Exit Sub End If End If MsgBox "OK処理を開始しよう。キミとはイイ仕事が出来そうだ。", vbInformation End Sub (ご近所PG)
(ご近所PG)さん またもや素敵なVBAありがとうございました! 確認とお返事が遅くなってごめんなさい。 しかし確認するVBAを組み込んでしまうなんて 本当にすごいですね。 VBAの中の言葉も素敵ですし^^
本当にありがとうございました! (あへあへ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.