<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ブログ作成ツール | VBA・GAS・Pythonで仕事を楽しく効率化</title>
	<atom:link href="https://officevba.info/category/excelvba/%E3%83%96%E3%83%AD%E3%82%B0%E4%BD%9C%E6%88%90%E3%83%84%E3%83%BC%E3%83%AB/feed/" rel="self" type="application/rss+xml" />
	<link>https://officevba.info</link>
	<description>仕事の役に立つVBA・GAS・Pythonのコードを紹介していきます。</description>
	<lastBuildDate>Tue, 01 Jan 2019 05:34:47 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>

<image>
	<url>https://officevba.info/wp-content/uploads/2017/04/cropped-Excel_1-32x32.jpg</url>
	<title>ブログ作成ツール | VBA・GAS・Pythonで仕事を楽しく効率化</title>
	<link>https://officevba.info</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Excelの表をhtmlの表にするVBAコード</title>
		<link>https://officevba.info/vbahtmltablemaking/</link>
					<comments>https://officevba.info/vbahtmltablemaking/#respond</comments>
		
		<dc:creator><![CDATA[okumasahito]]></dc:creator>
		<pubDate>Tue, 29 Nov 2016 15:13:39 +0000</pubDate>
				<category><![CDATA[ブログ作成ツール]]></category>
		<guid isPermaLink="false">http://officevba.info/?p=849</guid>

					<description><![CDATA[目次 htmlの表を作るのは面倒Excelの表をhtmlの表に変換するVBAコード htmlの表を作るのは面倒 ブログやホームページに表を載せたくなりましたが、htmlの表を作る簡単なツールがなくて困っていました。 ブロ [&#8230;]]]></description>
										<content:encoded><![CDATA[
  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">htmlの表を作るのは面倒</a></li><li><a href="#toc2" tabindex="0">Excelの表をhtmlの表に変換するVBAコード</a></li></ol>
    </div>
  </div>

<h2><span id="toc1">htmlの表を作るのは面倒</span></h2>
<p>ブログやホームページに表を載せたくなりましたが、htmlの表を作る簡単なツールがなくて困っていました。<br />
ブログを書いていると、自動改行されてしまうので、タグを全部書いていると結構面倒ですし（特にセルの結合がある場合途中で混乱します）、Excelで作ったものをhtmlの形式にして保存してもすごく大がかりなhtmlとCSSで作られるのでちょっとしたブログで使える感じではないです。</p>
<p>そこでExcelの表をhtmlの表にするVBAコードを作成しました。かなりの力技ですが、一応表として見えるようにはなります。<br />
今後改良を加えていきます。</p>
<h2><span id="toc2">Excelの表をhtmlの表に変換するVBAコード</span></h2>
<p>今回私が作成したVBAコードは以下のようになります。</p>
<p>実行するとExcelの開いているシートのA100セルにhtmlのタグが表示されます。<br />
100行、100列までの表なら結合されているセルを含めてこれで作成できます。</p>
<div class="VBACode">Sub Excelシートの表をhtmlに変換する()<br />
<span class="VBA_Comment">’何行目・何列目までを表にするか確認する</span><br />
<span class="VBA_Tab1">Dim i As Integer, k As Integer</span><br />
<span class="VBA_Tab1">Dim maxrow As Integer, maxcolumn As Integer</span><br />
<span class="VBA_Tab1">Cells(100, 1) = &#8220;&#8221;</span><br />
<span class="VBA_Tab1">maxcolumn = 1</span><br />
<span class="VBA_Tab1">For i = 1 To 100</span><br />
<span class="VBA_Tab2">If maxcolumn < Cells(i, Columns.Count).End(xlToLeft).Column Then</span><br />
<span class="VBA_Tab3">maxcolumn = Cells(i, Columns.Count).End(xlToLeft).Column</span><br />
<span class="VBA_Tab2">End If</span><br />
<span class="VBA_Tab1">Next i</span><br />
<span class="VBA_Tab1">maxrow = 1</span><br />
<span class="VBA_Tab1">For k = 1 To 100</span><br />
<span class="VBA_Tab2">If maxrow < Cells(Rows.Count, k).End(xlUp).Row Then</span><br />
<span class="VBA_Tab3">maxrow = Cells(Rows.Count, k).End(xlUp).Row</span><br />
<span class="VBA_Tab2">End If</span><br />
<span class="VBA_Tab1">Next k</span><br />
<span class="VBA_Comment">’結合しているセルを認識するための操作</span><br />
<span class="VBA_Tab1">Dim c, x As Integer</span><br />
<span class="VBA_Tab1">Dim rowspan(100, 100) As Integer</span><span class="VBA_Comment">’縦に結合しているセルを認識するための変数</span><br />
<span class="VBA_Tab1">Dim columnspan(100, 100) As Integer</span><span class="VBA_Comment">’横に結合しているセルを認識するための変数</span><br />
<span class="VBA_Tab1">For i = 1 To maxrow</span><br />
<span class="VBA_Tab2">For k = 1 To maxcolumn</span><br />
<span class="VBA_Tab3">rowspan(i, k) = 1</span><br />
<span class="VBA_Tab3">columnspan(i, k) = 1</span><br />
<span class="VBA_Tab3">For Each c In Cells(i, k).MergeArea</span><br />
<span class="VBA_Tab4">If c.Row < i Then</span><br />
<span class="VBA_Tab5">rowspan(i, k) = 0</span><br />
<span class="VBA_Tab5">columnspan(i, k) = 0</span><br />
<span class="VBA_Tab5">Exit For</span><br />
<span class="VBA_Tab4">ElseIf c.Row > i Then</span><br />
<span class="VBA_Tab5">rowspan(i, k) = c.Row － i + 1</span><br />
<span class="VBA_Tab4">End If</span><br />
<span class="VBA_Tab4">If c.Column < k Then</span><br />
<span class="VBA_Tab5">rowspan(i, k) = 0</span><br />
<span class="VBA_Tab5">columnspan(i, k) = 0</span><br />
<span class="VBA_Tab5">Exit For</span><br />
<span class="VBA_Tab4">ElseIf c.Column > k Then</span><br />
<span class="VBA_Tab5">columnspan(i, k) = c.Column － k + 1</span><br />
<span class="VBA_Tab4">End If</span><br />
<span class="VBA_Tab3">Next c</span><br />
<span class="VBA_Tab2">Next k</span><br />
<span class="VBA_Tab1">Next i</span><br />
<span class="VBA_Comment">’タグを出力するVBAコード</span><br />
<span class="VBA_Tab1">Dim d As String</span><br />
<span class="VBA_Tab1">d = &#8220;&lt;table border=1&gt;&#8221; </span><br />
<span class="VBA_Tab1">For i = 1 To maxrow</span><br />
<span class="VBA_Tab2">d = d + &#8220;&lt;tr&gt;&#8221;</span><br />
<span class="VBA_Tab2">For k = 1 To maxcolumn</span><br />
<span class="VBA_Tab3">If rowspan(i, k) &gt;= 2 And columnspan(i, k) &gt;= 2 Then</span><br />
<span class="VBA_Tab4">d = d &#038; &#8220;&lt;td align=center&#8221; &#038; &#8221; colspan=&#8221; &#038; columnspan(i, k) &#038; &#8221; rowspan=&#8221; &#038; rowspan(i, k) &#038; &#8220;&gt;&#8221; &#038; Cells(i, k) &#038; &#8220;&lt;/td&gt;&#8221; </span><br />
<span class="VBA_Tab3">ElseIf rowspan(i, k) = 1 And columnspan(i, k) &gt;= 2 Then</span><br />
<span class="VBA_Tab4">d = d &#038; &#8220;&lt;td align=center&#8221; &#038; &#8221; colspan=&#8221; &#038; columnspan(i, k) &#038; &#8221; &gt;&#8221; &#038; Cells(i, k) &#038; &#8220;&lt;/td&gt;&#8221; </span><br />
<span class="VBA_Tab3">ElseIf rowspan(i, k) &gt;= 2 And columnspan(i, k) = 1 Then</span><br />
<span class="VBA_Tab4">d = d &#038; &#8220;&lt;td align=center&#8221; &#038; &#8221; rowspan=&#8221; &#038; rowspan(i, k) &#038; &#8221; &gt;&#8221; &#038; Cells(i, k) &#038; &#8220;&lt;/td&gt;&#8221; </span><br />
<span class="VBA_Tab3">ElseIf rowspan(i, k) = 1 And columnspan(i, k) = 1 Then</span><br />
<span class="VBA_Tab4">d = d &#038; &#8220;&lt;td align=center&gt;&#8221; &#038; Cells(i, k) &#038; &#8220;&lt;/td&gt;&#8221;</span><br />
<span class="VBA_Tab3">End If</span><br />
<span class="VBA_Tab2">Next k</span><br />
<span class="VBA_Tab2">d = d + &#8220;&lt;/tr&gt;&#8221;</span><br />
<span class="VBA_Tab1">Next i</span><br />
<span class="VBA_Tab1">d = d + &#8220;&lt;/table&gt;&#8221; </span><br />
<span class="VBA_Tab1">Cells(100, 1).Value = d</span><br />
<span class="VBA_Tab1">Cells(100, 1).Select</span><br />
End Sub</div>
]]></content:encoded>
					
					<wfw:commentRss>https://officevba.info/vbahtmltablemaking/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
