• ベストアンサー
※ 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

  • 画像を横に並べると、枠線が出てしまう

    <table border="0"> <tr> <td><img src="画像ファイルのURL"></td> <td><img src="画像ファイルのURL"></td> <td><img src="画像ファイルのURL"></td> </tr> </table> これで、WPで作ったブログの画像を並べてみたのですが、 枠線を設定していないのに、細い枠線が出てしまいます。 <table> <tr> <td><img src="画像ファイルのURL"></td> <td><img src="画像ファイルのURL"></td> <td><img src="画像ファイルのURL"></td> </tr> </table> で、やっても枠線が出ます。 どのような記述にすれば、枠線が一切ない状態で並べることができるでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • ホームページの<TABLE>の簡易的な方法について

    ホームページ作成で写真をサムネールで表示し、クリックすると大きなサイズを表示する 簡便な方法について教えて下さい 今は、メモ帳で下記の様な記述を1枚1枚記入して作成しています これを、アプリで写真の配置で自動的に登録させるようなものがありますか? 毎回ホームページを作成する都度行うのも大変なので・・・ 写真を大小用意しておいて、レイアウトにはめるだけでできる様なものがあると良いのですが なにかありませんでしょうか? <TABLE> <TR> <Td>テスト</td> <Td>テスト</td>  ・  ・ <Td>テスト</td> </TR> <TR> <TD><a href="2002\large02/(サイズ大).jpg"><IMG src="2002/before/(サイズ小).jpg"></a></td> <TD><a href="2002\large02/(サイズ大).jpg"><IMG src="2002/before/(サイズ小).jpg"></a></td>  ・  ・ <Td><a href="2002\large02/(サイズ大).jpg"><IMG src="2002/before/(サイズ小).jpg"></a></td> </TR> </TABLE>

  • [JavaScript]Table内の文字列書換

    下記のようにTableを作り、上に場所名、下に画像を貼り JavaScriptで反時計回りに定期的に場所名と画像の位置を変えるプログラムを作成しています。 画像位置を変えることはできたのですが、文字列を変えることができません。 どなたかご教示ください。 ===================================== |     場所A    | 場所B | ================= =================== | | | | | 画像B | | | | | 画像 A =================== | | 場所C | | =================== | | | | | 画像C | | | | | =================== | | 場所D | | =================== | | | | | 画像D | | | | ===================================== <HTML> <HEAD> <TITLE>TEST</TITLE> <META HTTP-EQUIV="content-type" CONTENT="text/html;charset=UTF-8"> <META HTTP-EQUIV="refresh" CONTENT="50"> </HEAD> <BODY BGCOLOR="000000" TEXT="#FFFFFF"> <table ALIGN="CENTER" border="5" > <tr><td>A</td><td>B</td></tr> <tr><td rowspan=5><IMG SRC="A.jpg" NAME="SP1"><SCRIPT language="javaScript"> <!-- var NO1=1,NO2=2,NO3=3,NO4=4; img=new Array(4) img[1]="A.jpg" img[2]="B.jpg" img[3]="C.jpg" img[4]="D.jpg" UP(); function UP() { setTimeout("UP()",10000); document.SP1.src=img[NO1]; document.SP2.src=img[NO2]; document.SP3.src=img[NO3]; document.SP4.src=img[NO4]; NO1++; NO2++; NO3++; NO4++; if(NO1>4){NO1=1;} if(NO2>4){NO2=1;} if(NO3>4){NO3=1;} if(NO4>4){NO4=1;} } //--> </SCRIPT> </td> </td> <td><IMG SRC="B.jpg" NAME="SP2"</td></tr> <tr><td">C</td></tr> <tr><td><IMG SRC="C.jpg" NAME="SP3"></td></tr> <tr><td>D</td></tr> 一部省略 </table> </body> </ht

  • valign="top" が効かない

    <table> <tr valign="top"> <td rowspan="2"> <img src=""><img src="">・・・・<img src=""></td> <td><img src=""></td> <td><img src=""></td> </tr> <tr valign="top"> <td><img src="A"></td> <td><img src="B"></td> </tr> </table> 画像のサイズはすべて同じです。 1行目の画像は全て上寄りになりますが、2行目の img src="A" img src="B" が上寄りにならず、中ほどの位置にきてしまいます。 tr に指定せず、td に valign="top" を指定しても変わりません。 どうしてもわからずこちらに質問しました。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • このHTMLは間違えですか?

    テーブルタグにおいて、 <table> <tr><td><img src="ok.gif"></td></tr> <tr><td><img src="no.gif"></td></tr> </table> <table> <tr><td><img src="ok.gif"></td></tr> <img src="no.gif"> </table> この2つの構文はほぼ同じ表示になります。(細かい違いを気にしなければ) 下記は間違えでしょうが、使ってもかまわないということでしょうか?

    • ベストアンサー
    • HTML
  • vbsでIEの操作

    vbsでIEの自動操作を行おうとしているのですが,最後のボタンだけなぜか押せません. オブジェクトが存在しないとエラーになります. 下記は操作しようとしているところのソースです. <div id="layerPanelSessions" style="display:"> <table cellpadding="1" cellspacing="0" border="0" width="100%"> <tr> <td bgcolor="#CCCCCC"> <table cellpadding="0" cellspacing="0" border="0" width="100%"> <tr bgcolor="#EEEEEE"> <td> <table cellpadding="0" cellspacing="0" border="0" width="100%"> <tr valign="top"> <td> <table cellpadding="4" cellspacing="0" border="0" width="100%"> <tr valign="top"> <td><img src="/dana-cached/imgs/icn18x18SessionNC.gif" alt="ネットワークコネクト" width="18" height="18" border="0"></td> <td width="100%">ネットワークコネクト <br><span class="cssSmall">システム トレイに [ネットワーク コネクト] アイコンが表示されて「接続」となっていると、ネットワーク上でセキュアにアプリケーションにアクセスすることができます。<br> <br>そうでない場合はネットワーク コネクトの [セッションの開始] アイコンをクリックして接続します。</span> </td> </tr> </table> </td> <td align="right"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td colspan="6"><img src="/dana-cached/imgs/space.gif" width="1" height="1"></td> </tr> <tr> <td bgcolor="#EEEEEE" nowrap ><img src="/dana-cached/imgs/space.gif" width="10" height="10"> <input name="btnNCStart" type="button" value="開始" onclick="self.location='/dana/nc/ncrun.cgi?launch_nc=1'; return false;"></td> <td><img src="/dana-cached/imgs/space.gif" width="5" height="1"></td> <td bgcolor="#CCCCCC"><img src="/dana-cached/imgs/space.gif" width="1" height="1"></td> <td bgcolor="#EEEEEE"><img src="/dana-cached/imgs/btnPanelItemBlank.gif" alt="" width="20" height="20" border="0"></td> <td><img src="/dana-cached/imgs/space.gif" width="1" height="1"></td> </tr> </table> </td> </tr> </table> <table cellpadding="0" cellspacing="0" border="0" width="100%"> <tr> <td bgcolor="#CCCCCC"><img src="/dana-cached/imgs/space.gif" width="1" height="1"></td> </tr> </table> <table cellpadding="0" cellspacing="0" border="0" width="100%"> <tr> <td bgcolor="#CCCCCC"><img src="/dana-cached/imgs/space.gif" width="1" height="1"></td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </div> で,下記が操作用の私が作成したコードです. .Document.all("btnNCStart").Click 本当に困っています.どなたかよろしくお願いいたします.

  • 助けてください><IE上で1pxのズレ

    こんにちわ。 組んだテーブルに謎の1pxがはいってしまいます。 ファイヤーフォックスでは正常なのですがIEでは1pxの隙間ができてしまうようで。 どなたか分かる方いらっしゃたらお願いします>< <table width="660" border="0" cellpadding="0" cellspacing="0"> <tr> <td colspan="2" valign="top"> <img src="img/test_01.jpg" width="660" height="177" alt=""></td> </tr> <tr><td rowspan="2" valign="top"> <table width="316" border="0" cellpadding="0" cellspacing="0"> <tr> <td colspan="2"> <img src="img/test_02.jpg" width="316" height="46" alt=""></td> </tr> <tr> <td> <img src="img/test_05.jpg" width="144" height="47" alt=""></td> <td> <img src="img/test_06.jpg" width="172" height="47" alt=""></td> </tr> <tr> <td colspan="2"> <img src="img/test_08.jpg" width="316" height="169" alt=""></td> </tr> </table> </td></tr> <tr><td valign="top"> <table width="344" border="0" cellpadding="0" cellspacing="0"> <tr><td> <table width="344" border="0" cellpadding="0" cellspacing="0"> <tr> <td> <img src="img/test_03.jpg" width="181" height="62" alt=""></td> <td> <img src="img/test_04.jpg" width="163" height="62" alt=""></td> </tr> <tr> <td colspan="2"> <img src="img/test_07.jpg" width="344" height="83" alt=""></td> </tr> </table> </td></tr> <tr><td> <table width="344" border="0" cellpadding="0" cellspacing="0"> <tr> <td> <img src="img/test_09.jpg" width="160" height="62" alt=""></td> <td> <img src="img/test_10.jpg" width="184" height="62" alt=""></td> </tr> <tr> <td colspan="2"> <img src="img/test_11.jpg" width="344" height="23" alt=""></td> </tr> <tr> <td> <img src="img/test_12.jpg" width="160" height="32" alt=""></td> <td> <img src="img/test_13.jpg" width="184" height="32" alt=""></td> </tr> </table> </td></tr> </table> </td></tr> <tr><td colspan="2"> <table width="660" border="0" cellpadding="0" cellspacing="0"> <tr> <td colspan="5"> <img src="img/test_14.jpg" width="660" height="141" alt=""></td> </tr> <tr> <td> <img src="img/test_15.jpg" width="130" height="150" alt=""></td> <td> <img src="img/test_16.jpg" width="130" height="150" alt=""></td> <td> <img src="img/test_17.jpg" width="140" height="150" alt=""></td> <td> <img src="img/test_18.jpg" width="130" height="150" alt=""></td> <td> <img src="img/test_19.jpg" width="130" height="150" alt=""></td> </tr> <tr> <td colspan="5"> <img src="img/test_20.jpg" width="660" height="40" alt=""></td> </tr> </table> </td></tr> </table>

  • 特定の文字列を挿入

    テーブルのセルに特定の文字列を挿入する方法は御座いませんか? 例えば、 HTMLファイル <html> <head> </head> <body> <table> <tr><td> (1) </td><td> (2) </td></tr> <tr><td> (3) </td><td> (4) </td></tr> </table> </body> </html> とあった場合 JavaScriptファルには (1)に挿入する内容 (2)に挿入する内容 (3)に挿入する内容 (4)に挿入する内容 を書いてHTMLファイルに書き出しをしたいのです。 document.write('');を使って書き出す方法は知っていますが、指定した場所に貼り付けたい場合複数ファイルが必要になりますよね? それでは不便なので、JavaScriptファルは外部化で1つのファイルにし、指定箇所に文字列を挿入する方法を教えてください。 printを使えばいいんでしょうか?

  • ホームページで<TABLE>の簡易的な作成について

    私のホームページでテーブルを使用して写真を表示しています。 写真の表示にはメモ帳で、下記の様に記述し写真も2種類用意しています。 写真を用意するのは苦になりませんが、メモ帳で1枚1枚記述するのが大変なんです。 この作業が、VIXでできそうだという情報を頂きましたので、さっそくDLしてみました。 (gooへの質問が同様な質問で、申し訳ありません) まだ、操作していませんが下記の様な記述をファイルにして取り出すことは可能でしょうか? VIXでできそうならば、アドバイスをお願いします <TABLE> <TR> <Td>テスト</td> <Td>テスト</td>  ・ <Td>テスト</td> </TR> <TR> <TD><a href="2002\large02/(サイズ大).jpg"><IMG src="2002/before/(サイズ小).jpg"></a></td> <TD><a href="2002\large02/(サイズ大).jpg"><IMG src="2002/before/(サイズ小).jpg"></a></td>  ・ <Td><a href="2002\large02/(サイズ大).jpg"><IMG src="2002/before/(サイズ小).jpg"></a></td> </TR> </TABLE> ここでは、テーブルについて質問させて頂きましたが、他の方法でサムネール → 大きな写真と切り替えられればOKです。 この時にHP用の記述が取り出せると有難いです。 他のソフトでも結構です上手い方法はないでしょうか?

  • tableを自動作成・追加できるプログラムを探しているのです・・

    <table> <tbody> <tr> <td colspan="9" align="center" </TD></td> </tr> <tr> <td colspan="9" <A href="http:// target=" _blank"></td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td rowspan="3"></td> <td></td> <td><img src=".jpg"></td> <td></td> <td> <table> <tbody> <tr> <td></td> <td></td> <td></td> </tr> </tbody> </table> </td> <td></td> <td><img src=".jpg"></td> <td><img src=".jpg"></td> <td></td> </tr> <tr> <td></td> <td><img src=".jpg"></td> <td></td> <td> <table> <tbody> <tr> <td></td> <td></td> <td></td> </tr> </tbody> </table> </td> <td></td> <td><img src=".jpg"></td> <td><img src=".jpg"></td> <td></td> </tr> <tr> <td></td> <td><img src=".jpg"></td> <td></td> <td> <table> <tbody> <tr> <td></td> <td></td> <td></td> </tr> </tbody> </table> </td> <td></td> <td><img src=".jpg"></td> <td><img src=".jpg"></td> <td></td> </tr> <tr> <td><img src=".jpg"></td> </tr> </tbody> </table> こんなtableを作成し(tdには数値・文字列・画像が入ります)一つのhtmlファイルに一ヶ月に10個ほど手動でtableを追加しています。 これを入力フォームより数値や文字列・参照画像を入力し、月ごとのhtmlにしてるので、指定したhtmlに反映させるようなプログラム(cgi? javascript? PHP?)をご存じの方いらっしゃいませんでしょうか?