
No.6ベストアンサー
- 回答日時:
No5です。
No5のマクロはスピルされたセルには対応していませんでしたが、
スピルされたセルに対応したものが、こちらになります。
下記URLにアップしました。
https://ideone.com/FT9VYb
こちらの環境ではxlookupが動作しませんので、動作確認は行っていません。
期待した動作をしないかもしれませんので、ご了承ください。
再度のご回答ありがとうございます。
コードを見て驚きました。
ちょっと勉強しただけでは思いつかないレベルで大変恐縮です。
本当にありがとうございました。
No.5
- 回答日時:
丁寧な補足ありがとうございました。
こちらでは、xlookupの機能を実現できませんので、回答を控えようかと思いましたが、事情が分かりましたので、参考資料として、回答致します。
こちらに投稿するとエラーになるので、下記URLにアップしました。
https://ideone.com/D0gBQY
当方、xlookupが実行できる環境を持っていませんので、正確な動作確認は行っておりません。
14行目に
str = Target.Formula2
がありますが、このあと、
str = "=XLOOKUP(A1,Sheet2!A1:A10,Sheet2!B1:B10)"
を一時的に挿入し、動作確認しました。
もし、エラーになる場合は、
str = Target.Formula2を
str = Target.Formula
に変えてみてください。
尚、スピル機能には対応できていません。
Sheet1のB1をダブルクリックしたケースが本件ですが、
例として、
Sheet1のC1にスピルされたデータがあり、C1をダブルクリックしても、
Sheet2のC1に移動はしません。
プログラムの大まかな流れは以下のようになっています。
1.ダブルクリックされたセルに以下の計算式があれば、処理する。
無ければ、終了。
=XLOOKUP(任意の文字列)
2.XLOOKUPの各パラメータを取得
第1パラメータは、検索用の文字列
第2パラメータは、検索範囲
Sheet2!A1:A10
のようになっている前提です。
第3パラメータは、取得範囲
Sheet2!B1:B10
のようになっている前提です。
(このシート名は第2パラメータのシート名と同じ前提です)
第4パラメータ以降は、無視します。
(検索は完全一致の前提です)
3.第1パラメータの文字で、第2パラメータのシートの、検索範囲を
検索します。
(例では Sheet1のA1:A10を第1パラメータの文字で検索します。)
一致したセルがあった場合、
第2パラメータのシートの下記セルに移動します。
セルの行:一致したセルの行番号と同じ行
セルの列:第3パラメータの取得範囲の最初の列
(例 Sheet2!B1:D10のように定義されていた場合、B列)
No.4
- 回答日時:
No3です。
>目的は達成するのですが、どうしてもxlookup関数の引数を利用したコードを知りたいです。
申し訳ございません。
当方、xlookupが動作するexcelを持っていませんので(当方office2019です)、マクロからxlookupを呼び出すことはできません。
その為、マクロからxlookupを呼び出すことを期待されているのでしたら、私の方からは回答できません。
参考までにお伺いしたいのですが、
何故、「xlookup関数の引数を利用したコード」を知りたいのでしょうか。
その理由、背景などを提示していただけると、良い回答が得られやすくなるかと思います。
御回答ありがとうございます。
例示として支店番号、支店名のデータを掲載しておりますが、実務でエクセルシート3枚のデータからxlookup関数を用いてデータ検索結果反映シートに転記させるファイルを扱っております。
列数としてはデータシート毎に15列ぐらいあります。それぞれのシートから検索結果反映シートに20項目程度xlookup関数を用いて表示したい項目を転記しております。
検索結果反映シートには甲支店の来店者数、預金残高、貸出率、回収率、ノルマ達成率等のデータがそれぞれのシートから転記されているイメージです。
その転記されている元データを修正するため、検索結果反映シートに転記されているセルをダブルクリックすることで元データに瞬時に移動し、修正作業を容易にしたいという意図です。
意図が伝わりにくくて申し訳ありません。
現在、元データを修正するため、元データシートをクリックして該当支店の行を目視で検索し、そこから該当項目が表示されている列を目視で探すということをしております。
そこで、xlookup関数を用いて検索しているのであれば、その引数を利用して修正作業が容易になるvbaコードがあるのではないかと考えるに至ったところです。
No.3
- 回答日時:
>ダブルクリックであればどのようなコードになるのか教えてもらえると助かります!
Sheet1のシートモジュールに以下のマクロを登録してください。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim code As String
Dim wrow As Long
If Target.address <> "$B$1" Then
Exit Sub
End If
code = Range("A1").Value
With Worksheets("Sheet2")
For wrow = 1 To 10
If code = .Cells(wrow, 1).Value Then
.Activate
.Cells(wrow, 2).Select
Exit Sub
End If
Next
End With
End Sub
具体的なコードを提供いただきありがとうございます!
目的は達成するのですが、どうしてもxlookup関数の引数を利用したコードを知りたいです。
よろしくお願いいたします
No.2
- 回答日時:
No1です。
>ダブルクリックであればどのようなコードになるのか~
VBAで行うのなら、シートに設定されている関数はあまり関係なく、独自に再度検索をして、該当セルをアクティブにすることになると思います。
1)ダブルクリックのイベントで処理を行うにはこんな感じ
https://vba-create.jp/vba-event-doubleclick/
2)対象セルを検索するには、
・A1セルの値をFINDメソッドで検索するか
・シート関数のMACH関数を利用して検索する
方法が考えられます。
(プリミティブにループでセル範囲を比較しても良いです)
https://learn.microsoft.com/ja-jp/office/vba/api …
https://learn.microsoft.com/ja-jp/office/vba/api …
3)検索したセルをアクティブにする
https://www.officepro.jp/excelvba/cell_select/in …
という流れで、実現できると思います。
No.1
- 回答日時:
こんにちは
セルのダブルクリックであれば、VBAのイベントに用意されているのでさほど難しくはありませけれど、シングルクリックを検知するのにはwin APIを利用することが必要になるので、それなりに面倒な処理になります。
どうしてもご質問文のままを実現したければ、以下のような方法によることになるでしょう。
https://excel-excel.com/tips/vba_151.html
https://liclog.net/mouse_event-function-vba-api/
※ 上記はクリックの検知だけなので、その位置からセル位置を割り出して・・と処理を行うことになります。
一方で、ご質問の目的を達成できれば他の方法でも良いのであれば・・
HYPERLINK関数を利用して、リンク先を検索先のセルに指定することでも可能と思います。
具体的には、Sheet1のB1セルに、
=HYPERLINK("#Sheet2!B"&MATCH(A1,Sheet2!A1:A10,0), VLOOKUP(A1,Sheet2!A1:B10,2,0))
の数式を入力することでできるでしょう。
※ 当方の環境ではXLOOKUPが使えませんので、上式はVLOOKUPに変えてあります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル初心者 3 2022/02/05 18:05
- その他(Microsoft Office) 台帳シートの一連番号が別入力シートでデータを台帳に転記した時、台帳の一連番号が次の番号に変わる方法 3 2021/11/13 20:02
- Excel(エクセル) 納品書台帳の納品書番号(一連番号)が入力シートからのデータ転記で反映(表示)されるようにしたい。 1 2021/11/17 19:49
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Visual Basic(VBA) Excelにて、テキストボックスとコマンドボタン作り、コマンドボタンでカソールを移動させたい 1 2021/11/15 18:32
- その他(Microsoft Office) Excel関数の質問 2 2021/12/05 19:11
- Excel(エクセル) 空白行も含めてソートしたい 3 2022/02/01 23:13
- Excel(エクセル) VLOOKUPを使って多数シートからの集計について 2 2021/11/07 20:08
- Excel(エクセル) excel関数について お世話になります。上のセルに関数を入れセル右下をダブルクリックすると、関数は 4 2021/11/17 12:11
- Excel(エクセル) エクセル表作成について 5 2023/03/12 13:25
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで選択したセルがディ...
-
VBAにて『元に戻すボタン』を作...
-
VBAバーコード照合 バーコード...
-
マクロの「SaveAs」でエラーが...
-
「段」と「行」の違いがよくわ...
-
Excelで、あるセルの値に応じて...
-
VBA 別ブックからコピペしたい...
-
VBAマクロ実行時エラーの修正に...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセルで離れた列を選択して...
-
結合されたセルをプルダウンの...
-
特定の文字がある行以外を削除...
-
B列の最終行までA列をオート...
-
Excel VBAでのWorksheet_Change...
-
URLのリンク切れをマクロを使っ...
-
マクロ1があります。 A1のセル...
-
vbaで指定したセルより下の行を...
-
Cellsのかっこの中はどっちが行...
-
特定の色のついたセルを削除
-
Excel グラフのプロットからデ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
あああ..ああい..ああう とい...
-
エクセルで選択したセルがディ...
-
select caseの入れ子
-
VBAにて『元に戻すボタン』を作...
-
VBAバーコード照合 バーコード...
-
vbs 文字位置を中央に
-
targetでクリックしたら○
-
指数関数近似を行うプログラム...
-
ASPでバイナリ(ビッグエンディ...
-
xlookup関数の引数を利用して検...
-
VBAの変数をエクセルで表示
-
VBAで文字列検索の方法
-
「段」と「行」の違いがよくわ...
-
マクロの「SaveAs」でエラーが...
-
別ブックをダイアログボックス...
-
VBAマクロ実行時エラーの修正に...
-
B列の最終行までA列をオート...
-
エクセルで離れた列を選択して...
-
VBA シートをコピーする際に Co...
-
【Excel関数】UNIQUE関数で"0"...
おすすめ情報