- ベストアンサー
VBA(エクセル)で文字列操作方法と業務効率化の自動化について
- VBA(エクセル)を使った文字列操作や業務効率化の自動化について教えてください。
- エクセルでの業務効率化のために、原稿をhtmlソースに当て込んだり、テンプレートに自動的に挿入したりする方法について教えてください。
- VBAを使ってエクセル上での文字列操作や自動化ができるのか、効率的な業務処理方法について知りたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんな具合でしょう 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
その他の回答 (2)
- question01
- ベストアンサー率39% (40/101)
- question01
- ベストアンサー率39% (40/101)
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は完成です。
お礼
おー!!すごすぎます。。 こういうふうにやるんですね。。。 自分が想像していたよりも案外シンプルに実現できるんだなと思いました。 (とはいっても自分では到底組めませんが。。) こういうのを見るとVBAを勉強する元気が出てきます! 師匠になってほしいくらいです笑