• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:長いHTMLタグとフォルダ名を組み合わせたマクロ)

長いHTMLタグとフォルダ名を組み合わせたマクロ

このQ&Aのポイント
  • 初心者向けのエクセルマクロで、フォルダ名とフォトギャラリーの画像数を指定してマクロを実行する方法を教えてください。
  • フォトギャラリーの画像を表示するためのHTMLタグを利用し、フォルダ名とファイル名を組み合わせて画像を表示することができます。
  • また、フォルダ名やファイル名が変更された場合でも、マクロを再実行するだけで変更後の画像を表示することができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

#1です。 お礼の補足に関して、その方が、はるかに簡単。 基データが、シートSheet1のA1:C1 出来上がりは、シートSheet3のA列とすると(4行目以下) 標準モジュールに Sub test02() Set sh = Worksheets("Sheet3") For nm = 1 To 40 s = "<a herf=""http://aaa./com/" s = s & sh.Range("A1") & "/" & sh.Range("B1") & "/" & sh.Range("C1") s = s & Format(nm, "00") s = s & ".jpg""" & "Title =" & """" & "tokyo=" & Format(nm, "00") s = s & """" & " > " Cells(nm + 3, "A") = s Next nm End Sub を作り、実行。 ーー 附言。 質問例のHTML文全体の中に対して、各自を挟み込むとなるともっと複雑になり、そこまでしてエクセルVBAとエクセルワークシートを使ってやるのは、ベテランがやるならともかく、初心者が考えるのは行き過ぎ。 別にHTML作成ソフト(エディター)を探し、そこでコピーと置換などで対処できないかなと想像する。 全体的に質問の意向に沿って答えているかどうか自信なし。珍しい質問。

nkmyr
質問者

お礼

うまくいかない箇所がありましたので、上記を参考に自分なりに改造したところうまくいきました。エディターでコピーと置換って面倒ですよね。 やはりマクロの方が一発ですね。 ありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

質問の趣旨を、小生は十分とらえきれてない。なぜこんなことを、VBAを使って、エクセルシートを使って、やるのか。コピーと貼り付けした後に、一部手修正でよいのでは。そんな事情は書いておいた方がよいと思う。 ーーー 下記を手慰みで、つくってみた。しかし>初心者なので、という人にわかってもらえるかな。意味ないかも。 Sheet1のA1-D1に 2019 april  tokyo-minato  tokyo  40 と入れる。 A2に「作成」と入れる。このセルのクリックは、コマンドボタン替わりです。 ーー 標準モジュールMojule1に Public cl Public nm Sub test01() cl = 0: nm = 0 End Sub を書く。初期化。 Sheet1のWorksheet_SelectionChangeのイベントに ーー Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = "$A$2" Then MsgBox "データをセットします" s = "<a herf=""http://aaa./com/" s = s & Range("a1") & "/" & Range("B1") & "/" & Range("C1") nm = nm + 1 s = s & Format(nm, "00") s = s & ".jpg""" & "Title =" & """" & "tokyo=" & Format(nm, "00") s = s & """" & " > " MsgBox s cl.Value = s ElseIf Not Application.Intersect(Target, Range("A2:A30")) Is Nothing Then 'データをセットするセルを決定。 MsgBox "A2クリックで" & Target.Address & "に作成します." Set cl = Target Else End If End Sub と書く。 Sheet1の画面に戻ってA3:A30のどれかをクリック(選択)。今回はA3セルとする。 続けて、A2セルをクリック(選択)。データ作成を実行せよという意味。 これでA3セルに <a herf="htpt://aaa./com/2019/april/tokyo-minato1.jpg"Title ="tokyo=01" > がセットされる。 次にA3以外のセルをクリック。A4とする。 続けて、A2セルをクリック。これでA4セルに <a herf="htpt://aaa./com/2019/april/tokyo-minato2.jpg"Title ="tokyo=02" > がセットされる。 以下繰り返すと、指定セルに、前回とは、一部が変化して、セットされる。 「データをセットするセルの選択」と、「A2セルの選択」は、前後で、1対1で行うこと。 ーー  変化する番号を01に戻したいときは、標準モジュールのtest01を実行する。 その後は01,02,03・・と連続して進む。 データを作るところは、文字列結合の&の利用と、”(ダブルコーテーション)の扱いだけに注意した、が平凡な繰り返しで新味無し。

nkmyr
質問者

お礼

コメントありがとうございます。 お陰様でできましたが、おっしゃる通りA3:A30のどれかをクリックして作成ボタンをクリックの繰り返しで40まではいけましたが、一気に40までは難しいでしょうか?

関連するQ&A