• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA(エクセル)で文字列操作をしたいのですが。。)

VBA(エクセル)で文字列操作方法と業務効率化の自動化について

このQ&Aのポイント
  • VBA(エクセル)を使った文字列操作や業務効率化の自動化について教えてください。
  • エクセルでの業務効率化のために、原稿をhtmlソースに当て込んだり、テンプレートに自動的に挿入したりする方法について教えてください。
  • VBAを使ってエクセル上での文字列操作や自動化ができるのか、効率的な業務処理方法について知りたいです。

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

こんな具合でしょう Sub m()   Dim r As Range, n As Integer, m As Integer   Dim ff As Integer   ' データ領域の取得   Set r = Range("A1").CurrentRegion   ff = FreeFile   Close   ' 出力ファイルのオープン   Open "Sample12.html" For Output As #ff   ' ヘッダーおよびテーブルの題目の出力   Print #ff, "<html>"   Print #ff, "<head><title>sample</title></head>"   Print #ff, "<body>"   Print #ff, "<table>"   Print #ff, " <tr>"   For m = 2 To r.Columns.Count     Print #ff, " <td>" & Trim(r.Cells(1, m).Value) & "</td>"   Next   Print #ff, " </tr>"   For n = 2 To r.Rows.Count     ' データ行の出力     Print #ff, " <tr>"     For m = 2 To r.Columns.Count       Print #ff, " <td>";       If m < 5 Then         ' 商品名、価格、サイズ         Print #ff, Trim(r.Cells(n, m).Value);       Else         ' 写真1および写真2         If Trim(r.Cells(n, m).Value) <> "" Then           Print #ff, "<img src=""img/" & Trim(r.Cells(n, m).Value) & """>";         Else           Print #ff, " ";         End If       End If       Print #ff, "</td>"     Next     Print #ff, " </tr>"   Next   ' HTMLの後始末   Print #ff, "</table>"   Print #ff, "</body>"   Print #ff, "</html>"   Close End Sub

reggaepunc
質問者

お礼

おー!!すごすぎます。。 こういうふうにやるんですね。。。 自分が想像していたよりも案外シンプルに実現できるんだなと思いました。 (とはいっても自分では到底組めませんが。。) こういうのを見るとVBAを勉強する元気が出てきます! 師匠になってほしいくらいです笑

その他の回答 (2)

回答No.3

すみません、画像だけ再編集しました。

reggaepunc
質問者

お礼

おー!!すばらしい! こういうふうにやるんですね。。。 とても知恵が効いた方法だと思います! ありがとうございます! VBAを勉強する元気が出てきました! VBAの勉強、、本だけでは難しいものがありますね。。

回答No.2

VBAを覚えるまでに時間がかかるかと思うので、とりあえず、セルに計算式を入れて対応してみてはいかがでしょうか? まず、G2のセルに以下のように入れてみて下さい。 字は全て半角です。 ="<tr><td>"&B2&"</td><td>"&C2&"</td><td>"&D2&"</td><td><img src="&""""&"img/"&E2&""""&"></td><td><img src="&""""&F2&"""" & "></td></tr>" ●B2とかC2となっているのはセルの位置を意味します。 ●""はそのまま表示したい文字列を囲みます。 ●&はセルや文字列をつなぐための記号です。 セルの内容と文字列を組み合わせた結果が、計算式を入力したセルに表示されます。 これをコピーすれば、そのままHTMLのソースとして使用できます。 2行目移行はセルをコピーして張り付けるだけでOKです。 計算式の中で参照しているセルも、自動的も同じ行のセルに移動されます。 あとは、頭の<table><tr>…<td>写真2</td>と、終わりの</tr></table>だけ追加すればHTMLは完成です。

この投稿のマルチメディアは削除されているためご覧いただけません。

関連するQ&A