VBAでの質問です。 Sub WebR() If ActiveCell.Column <> 2 Then Exit Sub
VBAでの質問です。 Sub WebR() If ActiveCell.Column <> 2 Then Exit Sub ActiveCell.Offset(0, 1).Select With CreateObject("WScript.Shell") .Run "https://www.google.com/search?q=" & WorksheetFunction.EncodeURL("地域名" & " " & "インスタ" & " " & Selection) End With ActiveCell.Offset(0, -1).Range("A1").Select End Sub という式があります。 Offset(0, 1)には店名が入っていて 地域名+店名+インスタで検索するというVBAです。 地域名を毎回変更するの面倒なので ActiveCell.Offset(0, 1)より右に8列目に入れました。 "地域名"を8列目の値から拾うコードを教えてください。 よろしくお願いします。
#EXCEL2019 #Win11
Visual Basic・25閲覧・50
ベストアンサー
なんとなく言わんことはわかりますが、 なんとなくでしかわかりません。 まったくわからないわけではないが、10人聞いて、10人が同じ解釈にできないようなことを書かれると、依頼者と作成者の齟齬が生じ、想定しないものが出来上がります。 たとえば >ActiveCell.Offset(0, 1)より右に8列目に入れました。 これは、アクティブセルからみて8列目? それともOffset(0, 1)した時点からみて8列目? こうゆう、相対的な指定の仕方は、人によって解釈がわかれます。 Offset使うかは、依頼者よりもコード書人が決めることかなと思います。 言葉や文章で伝えるのは、必要なことですがけっこう難しいです。 まずイメージ図を作ってください。 具体的には エクセル使う前提で ①マクロ実行前のエクセル(シートなど) ②マクロ実行後のエクセル(シートなど) ②はこうなったらいいな、こうしたい的な完成イメージでいいです。 上記があるだけで、格段に伝わりやすくなります。 多少文章が曖昧やぬけていても補完できる場合もあります。 また、作る過程で処理の流れ アルゴリズムの整理もできたりします。 まず①②のイメージ図を作ること勧めます 踏まえて、やってはみたんですが、 >ActiveCell.Offset(0, -1).range("A1").Select 何をしたいのかよくわかりません。 あと開始セルを >ActiveCell.Offset(0, 1).Select でこれを基準に、地域名をいれる場所がきまるので、 マクロ実行時に、きちんと対象セルを選択していないと地域名を正しく設定できないのですが、それでいいんですかね? 下記のコードは、B1セルを選択している前提で、K1セルに「地域」を入れる前提になっています。 B1セル以外が選択していると、当然K1以外に地域が入っている必要があります。 ↑不安定で仕方ない気がしますが、マクロ実行時のエクセルのシートデザインがわからないのでなんともいえません。 >ActiveCell.Offset(0, -1).range("A1").Select これも何をしたいのかよくわかりません。 ActiveCell.Offset(0, -1).Select .range("A1")って意味ないんじゃないかと思うし、そもそも移動して何がしたいのかよくわらかない。 こうゆうことからも①②のイメージ図の作成を勧めます。 ActiveCell.Offset(0, 1).Select Dim grepKey As String grepKey = Selection.Offset(0, 8) With CreateObject("WScript.Shell") .Run "https://www.google.com/search?q=" & WorksheetFunction.EncodeURL(grepKey & " " & "インスタ" & " " & Selection) End With ActiveCell.Offset(0, -1).range("A1").Select
質問者からのお礼コメント
分かりづらい文章汲み取ってくださってありがとうございます! 理想のものができました。 ActiveCell.Offset(0, -1).range("A1").Select 基準の列に戻すための作業で必要なんです。 図とか載せるとよかったですね。 ありがとうございました!!!
お礼日時:5/21 13:00