表題の通りなんですが、エクセルで、あるセルに指定された数値(語句)が入った場合に、それを自動的に感知して実行するマクロがあればと思うのですが、そういったことってできるのでしょうか。
具体的には、
1、バーコードリーダーで数値をセルに入力
2、その数値に対応する名前をvlookup関数にて表示
3、その名前が入力された時点でマクロが自動的に実行
と言うものです。
3の部分がよく分からずに困っています。できるかどうか分かりませんが、もしできるようであるならその方法を教えていただければありがたいです。どうか、よろしくお願いします。
No.5
- 回答日時:
こんにちは。
KenKen_SP です。> 一度試してみて、うまくいったと思ったんですが、その後はどうやっても
> うまくいかなかったです。
zap35 さんの言われている「対象セルがC3...」は、バーコードリーダーか
ら数値が入力されるセルのことだと思いますが、単純な勘違いがありそうなの
で確認して下さい。「対象セルがC3...」のセルと
> その数値に対応する名前をvlookup関数にて表示
のセルとごちゃ混ぜになってませんか?
関数による表示の変化では Change イベントは発生しません。つまり VLOOKUP
関数の結果でセルの表示が変更されても Change イベントは発生しないという
ことです。Change イベントでこのセルを指定してないですかね...
それで、1回目はうまくいくが、2回目は動作しない...となっているのでは
ないですか?
この回答への補足
返信をありがとうございます。zap35 さんのコードを少々アレンジして、
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$a$4" Then
出勤 '処理
End If
Sub 出勤()
Dim m As Byte
Sheets("データ").Select
m = Cells(1, 2).Value + 5
Sheets("データ").Select
Range("D3").Select
ActiveCell.FormulaR1C1 = "=TIME(HOUR(RC[-3]),MINUTE(RC[-3])-5,0)"
Range("D3").Select
Selection.Copy
Cells(m, 4).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End Sub
と言う事で、a4にはバーコードで数値を読み込ませると、「出勤」のマクロが実行されるんじゃないかと思ったんですが、うまくいきませんでした。「出勤」のマクロ自体は単独で実行を押してもうまくいきますが、バーコードでは何度試してみてもうまくいきません。もし、原因が分かるようでしたら、よろしくお願いします。
No.4
- 回答日時:
>が、わざわざ、その仕組みが必要でしょうか?
私の書き込みに対するものだと思いますが、必要かどうかはわからなくても、もう少し情報がほしいです。それが必要か必要でないかは、ご質問者ご自身が決めてくださればよいです。
確かに、通信で一定期間に入ってくるものなら、タイマー機能で監視させれば良いかもしれませんが、不定期で入ってくるものに、常時監視させる方法としてはあまり関心しません。
それに、思ったようなイベントが発生しているかは、分からないです。手作業で入れるなら、話は簡単ですが、そうでない場合は、Change イベントでは、引っかからないこともあったような記憶があります。
私は、そんなに詳しい人間ではないので、もう少し詳しいことを確認したほうが良いと思ってお聞きしたまでです。
今の時点では、ご質問者の望むようなものには、直接結びつかないような気がしています。
これだけの回答で解決すると思っていらっしゃるのなら、それはそれでよいのですが。
この回答への補足
タイマー機能での監視の話ですが、以前の書き込みにそのような事が書いてあったので、使えるかと思っていたんですが、その内容を見る限りでは私の望んでいるものではありませんでした。
先ほどの書き込みにもお書きしましたが、できれば、バーコードリーダーにてバーコードを読み込ませる動作=コマンドボタンをクリックする動作 と言う使い方をしたいんです。
分かりにくい部分が多いかと思いますが、その際は再度補足します。どうか、よろしくお願いします。
No.3
- 回答日時:
まあ、タイマー監視すれば、当該セルに変更があったか否かは判るとは思います。
が、わざわざ、その仕組みが必要でしょうか?
1でイベントは発生していますので、そこで2、3を一気に処理すれば事足りると思いますが・・・。
No.2
- 回答日時:
こんにちは。
ご質問は、とても興味があります。
>セルに指定された数値(語句)が入った場合に、それを自動的に感知して実行するマクロがあればと思うのです
私の思っているのと同じであれば、おそらく出来ると思います。
同じような経験が2度ありますが、私は、ハードがさっぱり分かりません。
>具体的には、
> 1、バーコードリーダーで数値をセルに入力
> 2、その数値に対応する名前をvlookup関数にて表示
> 3、その名前が入力された時点でマクロが自動的に実行
もう少し、詳しく教えください。
バーコードリーダーで数値をセルに入れるのは、どのようにしているのですか?
通信の手段を教えてください。どのように入ってくるのですか?
その名前が入力された時点でマクロが自動的に「何を」実行すればよいのですか?
ある程度の内容は教えてください。
イベント・ドリブン型だと、たぶん、イベントを感知しないのではないかと思います。
私は、掲示板では、ハード系から情報を入れて加工するマクロは提供したことがありますが、最後まで、その仕組みを良く分かりませんでした。うまくいったそうです。
その時の通信手段は、DDEでした。今のOfficeは、OLEが中心ですが、未だに、そういう方式で、Excelにデータを入れているとのことです。
なお、VlookUp は、必要ないような気がします。あればあったで、そこから、イベントを取れます。
この回答への補足
こんにちは。先日は、「ユーザーフォームに現在の時間を入れる」事に関してお世話になりました、ありがとうございます。
>バーコードリーダーで数値をセルに入れるのは、どのようにしているのですか?
>通信の手段を教えてください。
これは、何桁かの数値に対応してあるバーコードをあらかじめ用意して、それに読み込ませるとセルにその数値が出てくるというものです。
通信手段は、USB端子につなげるだけでできるものです。
>その名前が入力された時点でマクロが自動的に「何を」実行すればよいのですか?
>ある程度の内容は教えてください。
回答になるかどうかは分かりませんが、ユーザーフォームのコマンドボタンをクリックすることとまったく同じ事をしたいんです。具体的には、バーコードの番号に対応したシートに移動し、そのシートに書かれている日にちに現在の時間を打ち込みたいんです。(タイムカードをエクセルで行いたいんです)
コマンドボタンでは、納得のいくものができたんですが、バーコードリーダーでの対応がまったく分からないんです。
まだまだ、初心者な事もあって、十分に説明できていない部分もあるのではないかと思うので、もし、分かりにくい部分がありましたら、再度補足しますので、よろしくお願いします。
No.1
- 回答日時:
仮にその対象セルがC3だとすると、以下のようなマクロを「そのシートのシートモジュール」に記述すればよいです。
これはシートのデータが変更されたというイベントによって起動されます。(だから1.、2.の時点でも起動されますので、変更セルのアドレスをIf文で聞いています)Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$3" Then
'処理
End If
End Sub
この回答への補足
返信をありがとうございます。
一度試してみて、うまくいったと思ったんですが、その後はどうやってもうまくいかなかったです。
理由もぜんぜん分かりません・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの自動更新のタイミングについて 1 2022/07/20 16:12
- Excel(エクセル) エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させる方法はあります 1 2022/11/14 21:03
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 16:07
- Excel(エクセル) ExcelのVBAコードについて教えてください。 1 2022/06/20 09:22
- Visual Basic(VBA) エクセルのマクロについて教えてください マクロを実行して 作業フォルダの中にある PDFファイル名を 3 2023/07/01 15:16
- Excel(エクセル) セルを数式で指定する方法 5 2022/04/13 16:55
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) エクセルで値ではなく関数を参照する方法 6 2023/03/19 00:50
- Excel(エクセル) エクセルのセル値に対応してマクロを実行する方法を教えてください セルA1が「1」の時にマクロ名「マク 2 2022/06/19 18:45
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
Excelで教えてください。 バーコードリーダーで読み込みしたあと セルを自動で次のセルに行くように
Excel(エクセル)
-
Excelでバーコードリーダーで読み込ませた場所に移動して日時を表示させる方法。
Excel(エクセル)
-
エクセルマクロでバーコードを読みたい
Excel(エクセル)
-
-
4
特定のエクセルファイルを起動させる方法
Excel(エクセル)
-
5
Enterキーでマクロを起動さす。
その他(ソフトウェア)
-
6
エクセルのマクロをセルの値に応じて自動起動したい
Visual Basic(VBA)
-
7
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
8
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelについて教えてください
-
【マクロ】名前を保存する際に...
-
エクセル マクロ チェックボックス
-
Excel 複数列 A列B列C列一致 D...
-
エクセル vbaについて教えてく...
-
エクセルであるセルに数字を入...
-
【Excel】数字を3倍にし、なお...
-
Excel分析ツールでのポアソン回...
-
エクセルVBA、別ブックへ転記す...
-
【マクロ】顧客番号にて一致さ...
-
Excelでセルの値が同じか...
-
(マクロ)データをAブックからB...
-
エクセルを使っていて2024/5/15...
-
エクセル共有したが、アクセス...
-
エクセル②
-
エクセルのデーターが2か月前の...
-
UNIQUE関数が使えないバージョ...
-
INDIRECTを使わず excelで複数...
-
Excelで縦軸の書式を0:00形式の...
-
【マクロ】読取専用のファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報