<?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>ysmt99  |  thanaism.com</title>
	<atom:link href="https://thanaism.com/archives/tag/ysmt99/feed" rel="self" type="application/rss+xml" />
	<link>https://thanaism.com</link>
	<description></description>
	<lastBuildDate>Tue, 05 Jul 2022 16:25:29 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.1</generator>
	<item>
		<title>【VBA】楽天ランキングページをWebスクレイピング④</title>
		<link>https://thanaism.com/archives/787</link>
					<comments>https://thanaism.com/archives/787#respond</comments>
		
		<dc:creator><![CDATA[タナイ]]></dc:creator>
		<pubDate>Tue, 16 Jun 2020 20:00:00 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[VBAで実践するWeb操作（実践編）]]></category>
		<guid isPermaLink="false">https://thanaism.com/?p=787</guid>

					<description><![CDATA[VBAで楽天ランキングページをWebスクレイピングする方法について、最後に補足説明を行います。 Contents コードのおさらい４位以下を取得したい場合楽天へのアクセス回数が多くならないか？サーバーへのアクセス回数サー [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="has-normal-font-size">VBAで楽天ランキングページをWebスクレイピングする方法について、最後に補足説明を行います。</p>



<div class="wp-block-cocoon-blocks-micro-balloon-2 micro-balloon micro-top micro-copy"><span class="micro-balloon-content micro-content"><span class="micro-balloon-icon micro-icon fab-lightbulb"></span>前回記事はこちら</span></div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">
<a href="https://thanaism.com/?p=780" title="【VBA】楽天ランキングページをWebスクレイピング③" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img width="160" height="90" src="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" loading="lazy" srcset="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png 160w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-300x169.png 300w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1024x576.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-768x432.png 768w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1536x864.png 1536w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-120x68.png 120w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-320x180.png 320w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1.png 1920w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【VBA】楽天ランキングページをWebスクレイピング③</div><div class="blogcard-snippet internal-blogcard-snippet">...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://thanaism.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">thanaism.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.16</div></div></div></div></a>
</div>



<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame2 preset1 animation-fade rtoc_open default" data-id="787" data-theme="Cocoon Child">
			<div id="rtoc-mokuji-title" class=" rtoc_left">
			<button class="rtoc_open_close rtoc_open"></button>
			<span>Contents</span>
			</div><ol class="rtoc-mokuji decimal_ol level-1"><li class="rtoc-item"><a href="#rtoc-1">コードのおさらい</a></li><li class="rtoc-item"><a href="#rtoc-2">４位以下を取得したい場合</a></li><li class="rtoc-item"><a href="#rtoc-3">楽天へのアクセス回数が多くならないか？</a><ul class="rtoc-mokuji mokuji_ul level-2"><li class="rtoc-item"><a href="#rtoc-4">サーバーへのアクセス回数</a></li><li class="rtoc-item"><a href="#rtoc-5">サーバーへのアクセスタイミング</a></li></ul></li></ol></div><h2 id="rtoc-1" ><span id="toc1">コードのおさらい</span></h2>



<p>前回まで使用していたコードは以下のようなものでした。</p>



<pre class="wp-block-code has-small-font-size"><code>Option Explicit


Sub getElm()
    
    '■１．前処理
    'IEのオブジェクトを作成
    Dim ie As InternetExplorer
    Set ie = New InternetExplorer
    
    'IEが開かないように設定
    ie.Visible = False


    '■２．本処理
    '指定のURLを開く
    ie.Navigate ("https://ranking.rakuten.co.jp/weekly/")
        
    'ページの読み込みが完了するまで待つ
    Do While ie.readyState &lt;> READYSTATE_COMPLETE
        'OSに制御を戻す
        DoEvents
    Loop
             
    
    Dim products As Object
    Dim product As Object
    Dim name As String
    Dim price As String
    Dim url As String
    Dim rank As Integer
    rank = 1
    
    Set products = ie.Document.getElementsByClassName("rnkRanking_top3box")
    For Each product In products
        
        name = product.getElementsByClassName("rnkRanking_itemName")(0).innerText
        price = product.getElementsByClassName("rnkRanking_price")(0).innerText
        url = product.getElementsByClassName("rnkRanking_itemName")(0).getElementsByTagName("a")(0).href
        Debug.Print "■第" &amp; rank &amp; "位"
        Debug.Print "商品名：" &amp; name
        Debug.Print "価格：" &amp; price
        Debug.Print "URL：" &amp; url
        rank = rank + 1
    
    Next product
      
      
    '■３．後処理
    ie.Quit
    Set ie = Nothing
            
End Sub

</code></pre>



<h2 id="rtoc-2" ><span id="toc2">４位以下を取得したい場合</span></h2>



<p>今回は、1位～3位を取得する前提であったため、「rnkRanking_top3box」というクラス名で要素を取得しました。</p>



<pre class="wp-block-code has-small-font-size"><code>    Set products = ie.Document.getElementsByClassName("rnkRanking_top3box")</code></pre>



<p>4位以下を取得したい場合は、4位以下の商品が含まれる要素を指定すれば良いです。Google開発者ツールで確認してみてください。</p>



<h2 id="rtoc-3" ><span id="toc3">楽天へのアクセス回数が多くならないか？</span></h2>



<p>ランキングページには、1位～80位までの80件の商品が掲載されています。<br>前述の方法（4位以下を取得する）を使うことで、一度に80件の商品情報をWebスクレイピングによって取得することが可能です。</p>



<p>そんな中で、「1回に80アクセスもしたら楽天からペナルティを受けるのではないか？」と懸念される方、いるのではないでしょうか？</p>



<p>結論から言うと、問題はありません。<br>その理由について説明します。</p>



<h3 id="rtoc-4" ><span id="toc4">サーバーへのアクセス回数</span></h3>



<p>このような懸念をされる方は、「サーバーに80回アクセスする」と考えているのだと思いますが、実際は、「サーバーへのアクセス回数は１回」です。</p>



<h3 id="rtoc-5" ><span id="toc5">サーバーへのアクセスタイミング</span></h3>



<p>では、サーバーへのアクセスがどのタイミングで行われるのか、ソースコードで確認してみましょう。</p>



<p>「サーバーに80回アクセスする」と考えている方は、以下のところでサーバーにアクセスしているという認識なのだと思います。</p>



<pre class="wp-block-code has-small-font-size"><code>    For Each product In products
        
        name = product.getElementsByClassName("rnkRanking_itemName")(0).innerText
        price = product.getElementsByClassName("rnkRanking_price")(0).innerText
        url = product.getElementsByClassName("rnkRanking_itemName")(0).getElementsByTagName("a")(0).href
        Debug.Print "■第" &amp; rank &amp; "位"
        Debug.Print "商品名：" &amp; name
        Debug.Print "価格：" &amp; price
        Debug.Print "URL：" &amp; url
        rank = rank + 1
    
    Next product</code></pre>



<p>実際は以下のところになりますので、サーバーへのアクセスは1回のみです。<br>上の処理は、「サーバーから取得済のデータ」を使って商品名や価格などを取得しているので、サーバーへのアクセスは行われません。</p>



<pre class="wp-block-code has-small-font-size"><code>    '■２．本処理
    '指定のURLを開く
    ie.Navigate ("https://ranking.rakuten.co.jp/weekly/")</code></pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-14 sbs-flat sbp-r sbis-sn cf block-box"><div class="speech-person"><figure class="speech-icon"><img src="https://thanaism.com/wp-content/uploads/2020/05/1two3様背景透過01.png" alt="タナイ" class="speech-icon-image"/></figure><div class="speech-name">タナイ</div></div><div class="speech-balloon">
<p>何度もアクセスするような無駄なプログラムにせず、1度のアクセスでより多くの情報を取れないか検討することが望ましいです。</p>
</div></div>
]]></content:encoded>
					
					<wfw:commentRss>https://thanaism.com/archives/787/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】楽天ランキングページをWebスクレイピング③</title>
		<link>https://thanaism.com/archives/780</link>
					<comments>https://thanaism.com/archives/780#respond</comments>
		
		<dc:creator><![CDATA[タナイ]]></dc:creator>
		<pubDate>Mon, 15 Jun 2020 20:00:00 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[VBAで実践するWeb操作（実践編）]]></category>
		<guid isPermaLink="false">https://thanaism.com/?p=780</guid>

					<description><![CDATA[前回は、手順１、手順２について説明し、楽天ランキングページから、商品を１件ずつ取得することができました。 今回は、取得した商品の「値」の取得方法を説明します。 Contents 商品のHTMLソースを取得するHTMLの中 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>前回は、手順１、手順２について説明し、楽天ランキングページから、商品を１件ずつ取得することができました。</p>



<p>今回は、取得した商品の「値」の取得方法を説明します。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<ol class="has-small-font-size"><li>楽天ランキングページ（<a rel="noopener" href="https://ranking.rakuten.co.jp/weekly/" target="_blank">https://ranking.rakuten.co.jp/weekly/</a>）にアクセスし、「ページ全体」を取得する。</li><li>「ページ全体」から、ランキングに掲載されている「商品」を１件ずつ取得する。</li><li>「商品」から、「値」（商品名、価格、URL）を取得する。</li><li>「値」を書きだす。</li><li>2～4を商品の数だけ繰り返す。</li></ol>
</div>



<div class="wp-block-cocoon-blocks-micro-balloon-2 micro-balloon micro-top micro-copy"><span class="micro-balloon-content micro-content"><span class="micro-balloon-icon micro-icon fab-lightbulb"></span>前回記事はこちら</span></div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">

<a href="https://thanaism.com/?p=774" title="【VBA】楽天ランキングページをWebスクレイピング②" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img width="160" height="90" src="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" loading="lazy" srcset="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png 160w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-300x169.png 300w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1024x576.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-768x432.png 768w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1536x864.png 1536w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-120x68.png 120w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-320x180.png 320w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1.png 1920w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【VBA】楽天ランキングページをWebスクレイピング②</div><div class="blogcard-snippet internal-blogcard-snippet">...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://thanaism.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">thanaism.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.15</div></div></div></div></a>

</div>



<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame2 preset1 animation-fade rtoc_open default" data-id="780" data-theme="Cocoon Child">
			<div id="rtoc-mokuji-title" class=" rtoc_left">
			<button class="rtoc_open_close rtoc_open"></button>
			<span>Contents</span>
			</div><ol class="rtoc-mokuji decimal_ol level-1"><li class="rtoc-item"><a href="#rtoc-1">商品のHTMLソースを取得する</a></li><li class="rtoc-item"><a href="#rtoc-2">HTMLの中身を確認する</a><ul class="rtoc-mokuji mokuji_ul level-2"><li class="rtoc-item"><a href="#rtoc-3">要素の取得</a></li><li class="rtoc-item"><a href="#rtoc-4">値の取得</a></li></ul></li><li class="rtoc-item"><a href="#rtoc-5">次回の予定</a></li></ol></div><h2 id="rtoc-1" ><span id="toc1">商品のHTMLソースを取得する</span></h2>



<p>商品１件のHTMLソースをコピーして、中身を見てみましょう。<br>以下の手順で実行します。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<ol class="has-small-font-size"><li>「Google開発者ツール」を起動。</li><li>「Elements」ペイン対象の要素を右クリックし、「CopyElement」を選択。</li><li>要素の内容がコピーされるので、テキストエディタ等に貼り付け。</li></ol>
</div>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="484" src="https://thanaism.com/wp-content/uploads/2020/05/7_copy_element-1024x484.png" alt="" class="wp-image-781" srcset="https://thanaism.com/wp-content/uploads/2020/05/7_copy_element-1024x484.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/7_copy_element-300x142.png 300w, https://thanaism.com/wp-content/uploads/2020/05/7_copy_element-768x363.png 768w, https://thanaism.com/wp-content/uploads/2020/05/7_copy_element.png 1097w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 id="rtoc-2" ><span id="toc2">HTMLの中身を確認する</span></h2>



<p>取得したHTMLの中身を確認してみましょう。</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="444" src="https://thanaism.com/wp-content/uploads/2020/05/6_htmlソース-1024x444.png" alt="" class="wp-image-782" srcset="https://thanaism.com/wp-content/uploads/2020/05/6_htmlソース-1024x444.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/6_htmlソース-300x130.png 300w, https://thanaism.com/wp-content/uploads/2020/05/6_htmlソース-768x333.png 768w, https://thanaism.com/wp-content/uploads/2020/05/6_htmlソース.png 1093w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 id="rtoc-3" ><span id="toc3">要素の取得</span></h3>



<p>「要素」の取得方法について検討します。</p>



<p>商品名とURLは「rnkRanking_itemName」、価格は「rnkRanking_price」のクラス名を持つタグに含まれていましたので、「getElementsByClassName」で取得できそうです。</p>



<h3 id="rtoc-4" ><span id="toc4">値の取得</span></h3>



<p>要素に含まれる「値」の取得方法を検討します。</p>



<p>まず、商品名と価格は前回使用した「innerText」プロパティで取得できそうです。</p>



<p>「URL」について、取得したい値はこれまでに説明した「innerText」「outerHtml」等のプロパティではなく、＜a＞タグに含まれる「href＝”&#8230;.”」の部分になります。取得方法が異なるので、注意が必要です。</p>



<pre class="wp-block-code has-small-font-size"><code>name = product.getElementsByClassName("rnkRanking_itemName")(0).innerText
price = product.getElementsByClassName("rnkRanking_price")(0).innerText
url = product.getElementsByClassName("rnkRanking_itemName")(0).getElementsByTagName("a")(0).href
</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" width="795" height="369" src="https://thanaism.com/wp-content/uploads/2020/05/8_属性の取得.png" alt="" class="wp-image-785" srcset="https://thanaism.com/wp-content/uploads/2020/05/8_属性の取得.png 795w, https://thanaism.com/wp-content/uploads/2020/05/8_属性の取得-300x139.png 300w, https://thanaism.com/wp-content/uploads/2020/05/8_属性の取得-768x356.png 768w" sizes="(max-width: 795px) 100vw, 795px" /></figure>



<h2 id="rtoc-5" ><span id="toc5">次回の予定</span></h2>



<p>VBAで楽天ランキングページをWebスクレイピングで取得するための説明は以上となります。</p>



<p>次回の記事ではまとめと補足説明を行います。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://thanaism.com/archives/780/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】楽天ランキングページをWebスクレイピング②</title>
		<link>https://thanaism.com/archives/774</link>
					<comments>https://thanaism.com/archives/774#respond</comments>
		
		<dc:creator><![CDATA[タナイ]]></dc:creator>
		<pubDate>Sun, 14 Jun 2020 20:00:00 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[VBAで実践するWeb操作（実践編）]]></category>
		<guid isPermaLink="false">https://thanaism.com/?p=774</guid>

					<description><![CDATA[今回から、具体的な手順の説明に入ります。 Contents ページ全体を取得する「ページ全体」から、ランキングに掲載されている「商品」を１件ずつ取得する。「Google開発者ツール」を使ったHTMLの確認手順次回の予定ペ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>今回から、具体的な手順の説明に入ります。</p>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<ol class="has-small-font-size"><li>楽天ランキングページ（<a rel="noopener" href="https://ranking.rakuten.co.jp/weekly/" target="_blank">https://ranking.rakuten.co.jp/weekly/</a>）にアクセスし、「ページ全体」を取得する。</li><li>「ページ全体」から、ランキングに掲載されている「商品」を１件ずつ取得する。</li><li>「商品」から、「値」（商品名、価格、URL）を取得する。</li><li>「値」を書きだす。</li><li>2～4を商品の数だけ繰り返す。</li></ol>
</div>



<div class="wp-block-cocoon-blocks-micro-balloon-2 micro-balloon micro-top micro-copy"><span class="micro-balloon-content micro-content"><span class="micro-balloon-icon micro-icon fab-lightbulb"></span>前回記事はこちら</span></div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">

<a href="https://thanaism.com/?p=766" title="【VBA】楽天ランキングページをWebスクレイピング①" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img width="160" height="90" src="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" loading="lazy" srcset="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png 160w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-300x169.png 300w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1024x576.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-768x432.png 768w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1536x864.png 1536w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-120x68.png 120w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-320x180.png 320w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1.png 1920w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【VBA】楽天ランキングページをWebスクレイピング①</div><div class="blogcard-snippet internal-blogcard-snippet">...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://thanaism.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">thanaism.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.14</div></div></div></div></a>

</div>



<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame2 preset1 animation-fade rtoc_open default" data-id="774" data-theme="Cocoon Child">
			<div id="rtoc-mokuji-title" class=" rtoc_left">
			<button class="rtoc_open_close rtoc_open"></button>
			<span>Contents</span>
			</div><ol class="rtoc-mokuji decimal_ol level-1"><li class="rtoc-item"><a href="#rtoc-1">ページ全体を取得する</a></li><li class="rtoc-item"><a href="#rtoc-2">「ページ全体」から、ランキングに掲載されている「商品」を１件ずつ取得する。</a><ul class="rtoc-mokuji mokuji_ul level-2"><li class="rtoc-item"><a href="#rtoc-3">「Google開発者ツール」を使ったHTMLの確認手順</a></li></ul></li><li class="rtoc-item"><a href="#rtoc-4">次回の予定</a></li></ol></div><h2 id="rtoc-1" ><span id="toc1">ページ全体を取得する</span></h2>



<p>この部分は、URLにランキングページを指定したこと以外は、前回と同じなので説明を割愛します。</p>



<pre class="wp-block-code has-small-font-size"><code>    '■１．前処理
    'IEのオブジェクトを作成
    Dim ie As InternetExplorer
    Set ie = New InternetExplorer
    
    'IEが開かないように設定
    ie.Visible = False


    '■２．本処理
    '指定のURLを開く
    ie.Navigate ("https://ranking.rakuten.co.jp/weekly/")
        
    'ページの読み込みが完了するまで待つ
    Do While ie.readyState &lt;> READYSTATE_COMPLETE
        'OSに制御を戻す
        DoEvents
    Loop
</code></pre>



<h2 id="rtoc-2" ><span id="toc2">「ページ全体」から、ランキングに掲載されている「商品」を１件ずつ取得する。</span></h2>



<p>「商品」が取得したページのどの部分になるか、HTMLを見ながら検討してみましょう。<br>HTMLの確認には「Google開発者ツール」で確認します。</p>



<h3 id="rtoc-3" ><span id="toc3">「Google開発者ツール」を使ったHTMLの確認手順</span></h3>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box">
<ol class="has-small-font-size"><li>ブラウザ（Chrome）上で「F12」キーをクリックし、ツールを起動します。</li><li>図の「矢印ボタン」を選択します。</li><li>Webページの該当箇所を選択できるようになるので、商品を1件選択します。</li><li>「Elements」ペインに、Webページの選択した箇所に対応したHTMLが選択されます。</li></ol>
</div>



<figure class="wp-block-image size-large"><img loading="lazy" width="947" height="538" src="https://thanaism.com/wp-content/uploads/2020/05/4_F12_説明.png" alt="" class="wp-image-777" srcset="https://thanaism.com/wp-content/uploads/2020/05/4_F12_説明.png 947w, https://thanaism.com/wp-content/uploads/2020/05/4_F12_説明-300x170.png 300w, https://thanaism.com/wp-content/uploads/2020/05/4_F12_説明-768x436.png 768w, https://thanaism.com/wp-content/uploads/2020/05/4_F12_説明-120x68.png 120w, https://thanaism.com/wp-content/uploads/2020/05/4_F12_説明-160x90.png 160w" sizes="(max-width: 947px) 100vw, 947px" /></figure>



<p>ランキングページの該当箇所を選択すると、「rnkRanking_top3box」というクラス名のタグが出てきます。<br>名前から見ても、このタグが商品1件に対応するタグのようです。</p>



<p>このクラス名をキーに、HTMLを取得してみます。<br>クラス名から取得するには「getElementsByClassName」を使用します。</p>



<pre class="wp-block-code has-small-font-size"><code>
    Dim products As Object
    Dim product As Object
    Dim name As String
    Dim price As String
    Dim url As String
    Dim rank As Integer
    rank = 1
    
    Set products = ie.Document.getElementsByClassName("rnkRanking_top3box")
    </code></pre>



<p>ブレークポイントで「products」オブジェクトの内容を確認すると、「Item1」～「Item3」の3件が取得できていることが分かります。ランキング１位～３位の商品が取得できたようです。</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="395" height="338" src="https://thanaism.com/wp-content/uploads/2020/05/5_ローカルウィンドウ.png" alt="" class="wp-image-778" srcset="https://thanaism.com/wp-content/uploads/2020/05/5_ローカルウィンドウ.png 395w, https://thanaism.com/wp-content/uploads/2020/05/5_ローカルウィンドウ-300x257.png 300w" sizes="(max-width: 395px) 100vw, 395px" /></figure>



<h2 id="rtoc-4" ><span id="toc4">次回の予定</span></h2>



<p>次回は、取得した商品から「値」を抽出していきます。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://thanaism.com/archives/774/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】楽天ランキングページをWebスクレイピング①</title>
		<link>https://thanaism.com/archives/766</link>
					<comments>https://thanaism.com/archives/766#comments</comments>
		
		<dc:creator><![CDATA[タナイ]]></dc:creator>
		<pubDate>Sun, 14 Jun 2020 02:00:00 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[VBAで実践するWeb操作（実践編）]]></category>
		<guid isPermaLink="false">https://thanaism.com/?p=766</guid>

					<description><![CDATA[前回までに説明した内容をもとに、楽天のランキングページをWebスクレイピングしてみましょう。 Contents 大まかな流れWebスクレイピングに必要な処理は毎回ほぼ同じ１．「ページ全体」を取得する２．「ページ全体」から [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>前回までに説明した内容をもとに、楽天のランキングページをWebスクレイピングしてみましょう。</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" src="https://thanaism.com/wp-content/uploads/2020/05/ランキング２-1024x679.png" alt="" class="wp-image-769" width="768" height="509" srcset="https://thanaism.com/wp-content/uploads/2020/05/ランキング２-1024x679.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/ランキング２-300x199.png 300w, https://thanaism.com/wp-content/uploads/2020/05/ランキング２-768x510.png 768w, https://thanaism.com/wp-content/uploads/2020/05/ランキング２.png 1073w" sizes="(max-width: 768px) 100vw, 768px" /></figure>



<div class="wp-block-cocoon-blocks-micro-balloon-2 micro-balloon micro-top micro-copy"><span class="micro-balloon-content micro-content"><span class="micro-balloon-icon micro-icon fab-lightbulb"></span>前回記事はこちら</span></div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">


<a href="https://thanaism.com/archives/551" title="【VBA】Webスクレイピング-06：取得した要素からテキストを抜き出す" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img width="160" height="90" src="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" loading="lazy" srcset="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png 160w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-300x169.png 300w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1024x576.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-768x432.png 768w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1536x864.png 1536w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-120x68.png 120w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-320x180.png 320w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1.png 1920w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【VBA】Webスクレイピング-06：取得した要素からテキストを抜き出す</div><div class="blogcard-snippet internal-blogcard-snippet">...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://thanaism.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">thanaism.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.05.19</div></div></div></div></a>


</div>



<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame2 preset1 animation-fade rtoc_open default" data-id="766" data-theme="Cocoon Child">
			<div id="rtoc-mokuji-title" class=" rtoc_left">
			<button class="rtoc_open_close rtoc_open"></button>
			<span>Contents</span>
			</div><ol class="rtoc-mokuji decimal_ol level-1"><li class="rtoc-item"><a href="#rtoc-1">大まかな流れ</a></li><li class="rtoc-item"><a href="#rtoc-2">Webスクレイピングに必要な処理は毎回ほぼ同じ</a><ul class="rtoc-mokuji mokuji_ul level-2"><li class="rtoc-item"><a href="#rtoc-3">１．「ページ全体」を取得する</a></li><li class="rtoc-item"><a href="#rtoc-4">２．「ページ全体」から、ランキングに掲載されている「商品」を１件ずつ取得する。</a></li><li class="rtoc-item"><a href="#rtoc-5">３．「商品」から、「値」（商品名、価格、URL）を取得する。</a></li><li class="rtoc-item"><a href="#rtoc-6">４．「値」を書きだす。</a></li><li class="rtoc-item"><a href="#rtoc-7">５．２～４を商品の数だけ繰り返す</a></li></ul></li><li class="rtoc-item"><a href="#rtoc-8">サンプルソース</a></li><li class="rtoc-item"><a href="#rtoc-9">次回の予定</a></li></ol></div><h2 id="rtoc-1" ><span id="toc1">大まかな流れ</span></h2>



<div class="wp-block-cocoon-blocks-blank-box-1 blank-box block-box has-small-font-size">
<ol><li>楽天ランキングページ（<a rel="noopener" href="https://ranking.rakuten.co.jp/weekly/" target="_blank">https://ranking.rakuten.co.jp/weekly/</a>）にアクセスし、「ページ全体」を取得する。</li><li>「ページ全体」から、ランキングに掲載されている「商品」を１件ずつ取得する。</li><li>「商品」から、「値」（商品名、価格、URL）を取得する。</li><li>「値」を書きだす。</li><li>2～4を商品の数だけ繰り返す。</li></ol>
</div>



<h2 id="rtoc-2" ><span id="toc2">Webスクレイピングに必要な処理は毎回ほぼ同じ</span></h2>



<p>こうして見ると、大まかな流れは前回の記事とほとんど変わらないことが分かります。<br>一度全体の流れが理解できれば、処理が異なる一部だけを対象ページ、データに合わせてアレンジすれば応用が可能です。</p>



<h3 id="rtoc-3" ><span id="toc3">１．「ページ全体」を取得する</span></h3>



<p>この部分は、前回と同じ方法が使えそうです。</p>



<h3 id="rtoc-4" ><span id="toc4">２．「ページ全体」から、ランキングに掲載されている「商品」を１件ずつ取得する。</span></h3>



<p>「商品」が取得したページのどの部分になるか、HTMLを見ながら検討が必要になりそうです。</p>



<h3 id="rtoc-5" ><span id="toc5">３．「商品」から、「値」（商品名、価格、URL）を取得する。</span></h3>



<p>２と同様、HTMLを見ながら検討が必要になりそうです。</p>



<h3 id="rtoc-6" ><span id="toc6">４．「値」を書きだす。</span></h3>



<p>取得した値を書きだします。<br>今回は「商品名」「価格」「商品詳細ページのURL」を対象とします。</p>



<h3 id="rtoc-7" ><span id="toc7">５．２～４を商品の数だけ繰り返す</span></h3>



<p>ランキングページには複数の商品が掲載されているので、商品の数だけ繰り返します。<br>今回のサンプルでは１位～３位の商品を出力します。</p>



<h2 id="rtoc-8" ><span id="toc8">サンプルソース</span></h2>



<p>実際のソースと実行結果は以下のようになります。</p>



<pre class="wp-block-code has-small-font-size"><code>Option Explicit


Sub getElm()
    
    '■１．前処理
    'IEのオブジェクトを作成
    Dim ie As InternetExplorer
    Set ie = New InternetExplorer
    
    'IEが開かないように設定
    ie.Visible = False


    '■２．本処理
    '指定のURLを開く
    ie.Navigate ("https://ranking.rakuten.co.jp/weekly/")
        
    'ページの読み込みが完了するまで待つ
    Do While ie.readyState &lt;> READYSTATE_COMPLETE
        'OSに制御を戻す
        DoEvents
    Loop
             
    
    Dim products As Object
    Dim product As Object
    Dim name As String
    Dim price As String
    Dim url As String
    Dim rank As Integer
    rank = 1
    
    Set products = ie.Document.getElementsByClassName("rnkRanking_top3box")
    For Each product In products
        
        name = product.getElementsByClassName("rnkRanking_itemName")(0).innerText
        price = product.getElementsByClassName("rnkRanking_price")(0).innerText
        url = product.getElementsByClassName("rnkRanking_itemName")(0).getElementsByTagName("a")(0).href
        Debug.Print "■第" &amp; rank &amp; "位"
        Debug.Print "商品名：" &amp; name
        Debug.Print "価格：" &amp; price
        Debug.Print "URL：" &amp; url
        rank = rank + 1
    
    Next product
      
      
    '■３．後処理
    ie.Quit
    Set ie = Nothing
            
End Sub</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" width="758" height="289" src="https://thanaism.com/wp-content/uploads/2020/05/実行結果-2.png" alt="" class="wp-image-770" srcset="https://thanaism.com/wp-content/uploads/2020/05/実行結果-2.png 758w, https://thanaism.com/wp-content/uploads/2020/05/実行結果-2-300x114.png 300w" sizes="(max-width: 758px) 100vw, 758px" /></figure>



<h2 id="rtoc-9" ><span id="toc9">次回の予定</span></h2>



<p>次回以降、手順に沿って具体的な説明に入ります。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://thanaism.com/archives/766/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】Webスクレイピング-06：取得した要素からテキストを抜き出す</title>
		<link>https://thanaism.com/archives/551</link>
					<comments>https://thanaism.com/archives/551#respond</comments>
		
		<dc:creator><![CDATA[タナイ]]></dc:creator>
		<pubDate>Mon, 18 May 2020 15:19:51 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[VBAで実践するWeb操作（入門編）]]></category>
		<guid isPermaLink="false">https://thanaism.com/?p=551</guid>

					<description><![CDATA[VBAでWEBスクレイピングの第6弾です。今回で基本的な内容についての解説はひと通り終わることになります。 それでは、前回の続きとして、idやclass等で抜き出したタグ含みの情報からどうやって欲しいテキストを抽出してい [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>VBAでWEBスクレイピングの第6弾です。今回で基本的な内容についての解説はひと通り終わることになります。</p>



<div class="wp-block-cocoon-blocks-micro-balloon-2 micro-balloon micro-top micro-copy"><span class="micro-balloon-content micro-content"><span class="micro-balloon-icon micro-icon fab-lightbulb"></span>前回記事はこちら</span></div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">






<a href="https://thanaism.com/archives/548" title="【VBA】Webスクレイピング-05：HTMLからデータを取り出す（Id／タグ名など）" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img width="160" height="90" src="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" loading="lazy" srcset="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png 160w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-300x169.png 300w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1024x576.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-768x432.png 768w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1536x864.png 1536w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-120x68.png 120w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-320x180.png 320w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1.png 1920w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【VBA】Webスクレイピング-05：HTMLからデータを取り出す（Id／タグ名など）</div><div class="blogcard-snippet internal-blogcard-snippet">...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://thanaism.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">thanaism.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.05.18</div></div></div></div></a>






</div>



<p>それでは、前回の続きとして、idやclass等で抜き出したタグ含みの情報からどうやって欲しいテキストを抽出していくかについて解説していきましょう。</p>



<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame2 preset1 animation-fade rtoc_open default" data-id="551" data-theme="Cocoon Child">
			<div id="rtoc-mokuji-title" class=" rtoc_left">
			<button class="rtoc_open_close rtoc_open"></button>
			<span>Contents</span>
			</div><ol class="rtoc-mokuji decimal_ol level-1"><li class="rtoc-item"><a href="#rtoc-1">テキストが格納されているプロパティ</a></li><li class="rtoc-item"><a href="#rtoc-2">サンプルコード</a></li><li class="rtoc-item"><a href="#rtoc-3">各プロパティの取得内容比較</a></li><li class="rtoc-item"><a href="#rtoc-4">Webスクレイピングについて</a><ul class="rtoc-mokuji mokuji_ul level-2"><li class="rtoc-item"><a href="#rtoc-5">本格的にWeb開発を学ぶなら</a></li></ul></li></ol></div><h2 id="rtoc-1" ><span id="toc1">テキストが格納されているプロパティ</span></h2>



<figure class="wp-block-image size-large"><img src="https://source.unsplash.com/HrvOZJnO2pk" alt=""/></figure>



<p>取得した「要素」に含まれている「プロパティ」にテキストが格納されています。<br>プロパティは、以下の４種類があります。</p>



<ul><li>outerHTML<br>要素と、要素に含まれるHTML全体</li><li>outerText<br>要素と、要素に含まれるHTML全体の中で、画面にテキストとして表示される部分</li><li>innerHTML<br>要素に含まれるHTML全体（要素そのものは含まない）</li><li>innerText<br>要素に含まれるHTML全体の中で、画面にテキストとして表示される部分（要素そのものは含まない）</li></ul>



<h2 id="rtoc-2" ><span id="toc2">サンプルコード</span></h2>



<p>それぞれのプロパティを表示してみましょう。<br>前回と同様に、WikiPediaの「VBA」というページにアクセスしてみます。<br>https://ja.wikipedia.org/wiki/Visual_Basic_for_Applications</p>



<p class="has-normal-font-size">「id=&#8221;cite_note-13&#8243;」の要素を取得し、前述の４つのプロパティを表示します。。</p>



<pre class="wp-block-code has-small-font-size"><code>Option Explicit


Sub getElm()
    
    '■１．前処理
    'IEのオブジェクトを作成
    Dim ie As InternetExplorer
    Set ie = New InternetExplorer
    
    'IEが開かないように設定
    ie.Visible = False


    '■２．本処理
    '指定のURLを開く
    ie.Navigate ("https://ja.wikipedia.org/wiki/Visual_Basic_for_Applications")
        
    'ページの読み込みが完了するまで待つ
    Do While ie.readyState &lt;> READYSTATE_COMPLETE
        'OSに制御を戻す
        DoEvents
    Loop
             
    
    Dim elmById As Object
    Set elmById = ie.Document.getElementById("cite_note-13")
    Debug.Print ("＝＝＝＝＝outerHTML＝＝＝＝＝")
    Debug.Print (elmById.outerHTML)
    Debug.Print ("＝＝＝＝＝outerText＝＝＝＝＝")
    Debug.Print (elmById.outerText)
    Debug.Print ("＝＝＝＝＝innerHTML＝＝＝＝＝")
    Debug.Print (elmById.innerHTML)
    Debug.Print ("＝＝＝＝＝innerText＝＝＝＝＝")
    Debug.Print (elmById.innerText)
            
      
    '■３．後処理
    ie.Quit
    Set ie = Nothing
            
End Sub</code></pre>



<p>イミディエイトウィンドウに、以下のように出力されていれば、取得成功です。</p>



<pre class="wp-block-code has-small-font-size"><code>＝＝＝＝＝outerHTML＝＝＝＝＝
&lt;li id="cite_note-13">&lt;b>&lt;a href="#cite_ref-13">^&lt;/a>&lt;/b> &lt;span class="reference-text">&lt;a class="external text" href="https://support.office.com/ja-jp/article/a97c09d2-c082-46b8-b19f-e8621e8fe373" rel="nofollow">Excel のマクロのセキュリティ設定を変更する - Excel&lt;/a>&lt;/span>
&lt;/li>
＝＝＝＝＝outerText＝＝＝＝＝
^ Excel のマクロのセキュリティ設定を変更する - Excel 
＝＝＝＝＝innerHTML＝＝＝＝＝
&lt;b>&lt;a href="#cite_ref-13">^&lt;/a>&lt;/b> &lt;span class="reference-text">&lt;a class="external text" href="https://support.office.com/ja-jp/article/a97c09d2-c082-46b8-b19f-e8621e8fe373" rel="nofollow">Excel のマクロのセキュリティ設定を変更する - Excel&lt;/a>&lt;/span>

＝＝＝＝＝innerText＝＝＝＝＝
^ Excel のマクロのセキュリティ設定を変更する - Excel </code></pre>



<h2 id="rtoc-3" ><span id="toc3">各プロパティの取得内容比較</span></h2>



<p>outerHTMLを基準に、各プロパティの表示内容は以下のようになります。<br>・「outer」は要素自体を含み、「inner」は含まない<br>・「HTML」はHTMLそのものを表示し、「Text」は表示用のテキスト部のみを表示する。</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="713" height="392" src="https://thanaism.com/wp-content/uploads/2020/05/プロパティ.png" alt="" class="wp-image-553" srcset="https://thanaism.com/wp-content/uploads/2020/05/プロパティ.png 713w, https://thanaism.com/wp-content/uploads/2020/05/プロパティ-300x165.png 300w" sizes="(max-width: 713px) 100vw, 713px" /></figure>



<h2 id="rtoc-4" ><span id="toc4">Webスクレイピングについて</span></h2>



<p>Webスクレイピングの基本的な内容は以上となります。</p>



<p>意外と簡単に取得できることがお分かりいただけたかと思います。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-14 sbs-flat sbp-r sbis-sn cf block-box"><div class="speech-person"><figure class="speech-icon"><img src="https://thanaism.com/wp-content/uploads/2020/03/b08e05d4a9e3c8435fd93507abd07c7d.png" alt="タナイ" class="speech-icon-image"/></figure><div class="speech-name">タナイ</div></div><div class="speech-balloon">
<p>今回解説した内容は、あくまでHTMLデータの操作がベースのため、Web開発でよく使われるJavaScriptなどでも十分に通用する知識です。</p>
</div></div>



<p>Webサイトの利用規約に注意して、有効活用していただければ幸いです。</p>



<h3 id="rtoc-5" ><span id="toc5">本格的にWeb開発を学ぶなら</span></h3>



<p>VBAだけでなく、HTML自体だったり、CSS、JavaScriptといったWeb開発系言語を独学するなら<span class="bold-red">Udemy</span>がオススメです！</p>



<p>ある程度プログラミングの知識がある人は、他の言語の学習も応用が効くのでビデオ学習の効率はめちゃくちゃ良いと思います。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-14 sbs-flat sbp-r sbis-sn cf block-box"><div class="speech-person"><figure class="speech-icon"><img src="https://thanaism.com/wp-content/uploads/2020/03/b08e05d4a9e3c8435fd93507abd07c7d.png" alt="タナイ" class="speech-icon-image"/></figure><div class="speech-name">タナイ</div></div><div class="speech-balloon">
<p>私も、新しい技術にキャッチアップしたいときはビデオ講座を購入して<span class="bold-red">倍速再生で高速学習</span>しています。</p>
</div></div>



<div class="wp-block-cocoon-blocks-micro-balloon-2 micro-balloon micro-top micro-copy"><span class="micro-balloon-content micro-content">Udemyの登録はこちら！</span></div>



<p><a rel="nofollow" href="https://px.a8.net/svt/ejp?a8mat=3BDOYR+GB1F8Y+3L4M+6RHFL"><img loading="lazy" border="0" width="300" height="250" alt="" src="https://www24.a8.net/svt/bgt?aid=200513187986&amp;wid=001&amp;eno=01&amp;mid=s00000016735001136000&amp;mc=1"></a></p>



<p><a href="https://px.a8.net/svt/ejp?a8mat=3BDOYR+GB1F8Y+3L4M+BW8O2&amp;a8ejpredirect=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fweb-application-development%2F%3FaEightID%3Ds00000016735001">ウェブ開発入門完全攻略コース &#8211; プログラミング をはじめて学び創れる人へ！未経験から現場で使える開発スキルを習得！</a></p>



<div class="wp-block-cocoon-blocks-micro-balloon-2 micro-balloon micro-bottom micro-copy"><span class="micro-balloon-content micro-content"><span class="micro-balloon-icon micro-icon fab-lightbulb"></span>Web開発が網羅的に解説されているので初期学習に超オススメです。私も受講しました。</span></div>
]]></content:encoded>
					
					<wfw:commentRss>https://thanaism.com/archives/551/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】Webスクレイピング-05：HTMLからデータを取り出す（Id／タグ名など）</title>
		<link>https://thanaism.com/archives/548</link>
					<comments>https://thanaism.com/archives/548#respond</comments>
		
		<dc:creator><![CDATA[タナイ]]></dc:creator>
		<pubDate>Mon, 18 May 2020 14:53:38 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[VBAで実践するWeb操作（入門編）]]></category>
		<guid isPermaLink="false">https://thanaism.com/?p=548</guid>

					<description><![CDATA[VBAでWEBスクレイピングの第5弾です。 今回の記事では、HTMLからデータを取得する方法をいくつか紹介していきます。 Contents 要素を取得するメソッドサンプルコードメソッド名と、取得できるデータの数について次 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="has-normal-font-size">VBAでWEBスクレイピングの第5弾です。</p>



<div class="wp-block-cocoon-blocks-micro-balloon-2 micro-balloon micro-top micro-copy"><span class="micro-balloon-content micro-content"><span class="micro-balloon-icon micro-icon fab-lightbulb"></span>前回記事はこちら</span></div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">




<a href="https://thanaism.com/archives/517" title="【VBA】Webスクレイピング-04：[開発]データを取得する" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img width="160" height="90" src="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" loading="lazy" srcset="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png 160w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-300x169.png 300w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1024x576.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-768x432.png 768w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1536x864.png 1536w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-120x68.png 120w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-320x180.png 320w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1.png 1920w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【VBA】Webスクレイピング-04：[開発]データを取得する</div><div class="blogcard-snippet internal-blogcard-snippet">...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://thanaism.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">thanaism.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.05.18</div></div></div></div></a>




</div>



<p>今回の記事では、HTMLからデータを取得する方法をいくつか紹介していきます。</p>



<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame2 preset1 animation-fade rtoc_open default" data-id="548" data-theme="Cocoon Child">
			<div id="rtoc-mokuji-title" class=" rtoc_left">
			<button class="rtoc_open_close rtoc_open"></button>
			<span>Contents</span>
			</div><ol class="rtoc-mokuji decimal_ol level-1"><li class="rtoc-item"><a href="#rtoc-1">要素を取得するメソッド</a></li><li class="rtoc-item"><a href="#rtoc-2">サンプルコード</a></li><li class="rtoc-item"><a href="#rtoc-3">メソッド名と、取得できるデータの数について</a></li><li class="rtoc-item"><a href="#rtoc-4">次回の内容</a></li></ol></div><h2 id="rtoc-1" ><span id="toc1">要素を取得するメソッド</span></h2>



<p>「要素」とは「対になるHTMLタグで囲まれた範囲」という風に理解してください。<br>「要素」を取得する方法には、以下のものがあります。</p>



<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box"><div class="tab-caption-box-label block-box-label box-label"><span class="tab-caption-box-label-text block-box-label-text box-label-text">HTML要素を取得するメソッド</span></div><div class="tab-caption-box-content block-box-content box-content">
<ul><li>getElementById<br>HTML内の「id」をキーに要素を取得します。</li></ul>



<ul><li>getElementsByName<br>HTML内の「name」をキーに要素を取得します。</li></ul>



<ul><li>getElementsByTagName<br>HTML内の「タグ名」をキーに要素を取得します。</li></ul>



<ul><li>getElementsByClassName<br>HTML内の「class」をキーに要素を取得します。</li></ul>
</div></div>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-14 sbs-flat sbp-r sbis-sn cf block-box"><div class="speech-person"><figure class="speech-icon"><img src="https://thanaism.com/wp-content/uploads/2020/03/b08e05d4a9e3c8435fd93507abd07c7d.png" alt="タナイ" class="speech-icon-image"/></figure><div class="speech-name">タナイ</div></div><div class="speech-balloon">
<p>getElementByIdだけElementsではなくElementである点に注意しましょう。</p>



<p>これは、後述しますがHTMLの構文規則上、idは一意の値としなくてはならず複数形にならないためです。</p>
</div></div>



<p>それぞれのメソッドで要素を取得し、表示してみましょう。</p>



<p>Wikipediaの「VBA」というページにアクセスしてみます。<br><a href="https://ja.wikipedia.org/wiki/Visual_Basic_for_Applications">https://ja.wikipedia.org/wiki/Visual_Basic_for_Applications</a></p>



<p>また、今回はVBAの「イミディエイト」というウィンドウに取得結果を表示します。<br>VBAの[表示]-「イミディエイトウィンドウ」を選択し、ウィンドウを開いておいてください。</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="576" src="https://thanaism.com/wp-content/uploads/2020/05/イミディエイトウィンドウ-1024x576.png" alt="" class="wp-image-549" srcset="https://thanaism.com/wp-content/uploads/2020/05/イミディエイトウィンドウ-1024x576.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/イミディエイトウィンドウ-300x169.png 300w, https://thanaism.com/wp-content/uploads/2020/05/イミディエイトウィンドウ-768x432.png 768w, https://thanaism.com/wp-content/uploads/2020/05/イミディエイトウィンドウ-120x68.png 120w, https://thanaism.com/wp-content/uploads/2020/05/イミディエイトウィンドウ-160x90.png 160w, https://thanaism.com/wp-content/uploads/2020/05/イミディエイトウィンドウ-320x180.png 320w, https://thanaism.com/wp-content/uploads/2020/05/イミディエイトウィンドウ.png 1366w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 id="rtoc-2" ><span id="toc2">サンプルコード</span></h2>



<p>前述の４つの方法で、データを取得しています。</p>



<pre class="wp-block-code has-small-font-size"><code>Option Explicit


Sub getElm()
    
    '■１．前処理
    'IEのオブジェクトを作成
    Dim ie As InternetExplorer
    Set ie = New InternetExplorer
    
    'IEが開かないように設定
    ie.Visible = False


    '■２．本処理
    '指定のURLを開く
    ie.Navigate ("https://ja.wikipedia.org/wiki/Visual_Basic_for_Applications")
        
    'ページの読み込みが完了するまで待つ
    Do While ie.readyState &lt;> READYSTATE_COMPLETE
        'OSに制御を戻す
        DoEvents
    Loop
             
    Debug.Print ("＝＝＝＝＝Idから取得＝＝＝＝＝")
    
    '「firstHeading」というIdを持つ要素を取得
    Dim elmById As Object
    Set elmById = ie.Document.getElementById("firstHeading")
    '1件しか取得されないのでそのまま表示
    Debug.Print (elmById.outerHTML)
      
    
    Debug.Print ("")
    Debug.Print ("")
    Debug.Print ("＝＝＝＝＝タグ名から取得＝＝＝＝＝")
        
    
    '「h2」タグを取得
    Dim elmByTagName As Object
    Set elmByTagName = ie.Document.getElementsByTagName("h2")
    Dim i As Long
    '複数件取得されるのでループして出力
    For i = 0 To elmByTagName.Length - 1
        Debug.Print (elmByTagName(i).outerHTML)
    Next i
      
    
    Debug.Print ("")
    Debug.Print ("")
    Debug.Print ("＝＝＝＝＝nameから取得＝＝＝＝＝")
    
    '「search」というnameを持つ要素を取得
    Dim elmByName As Object
    Set elmByName = ie.Document.getElementsByName("search")
    '複数件取得されるのでループして出力
    For i = 0 To elmByName.Length - 1
        Debug.Print (elmByName(i).outerHTML)
    Next i
      
      
    Debug.Print ("")
    Debug.Print ("")
    Debug.Print ("＝＝＝＝＝classから取得＝＝＝＝＝")
      
      
    '「toclevel-1」というclassを持つ要素を取得
    Dim elmByClassName As Object
    Set elmByClassName = ie.Document.getElementsByClassName("toclevel-1")
    '複数件取得されるのでループして出力
    For i = 0 To elmByClassName.Length - 1
        Debug.Print (elmByClassName(i).outerHTML)
    Next i
      
      
    '■３．後処理
    ie.Quit
    Set ie = Nothing
            
End Sub</code></pre>



<p>イミディエイトウィンドウに、以下のように出力されていれば、取得成功です。</p>



<pre class="wp-block-code vbscript has-small-font-size"><code>＝＝＝＝＝Idから取得＝＝＝＝＝
&lt;h1 class="firstHeading" id="firstHeading" lang="ja">Visual Basic for Applications&lt;/h1>


＝＝＝＝＝タグ名から取得＝＝＝＝＝
&lt;h2 id="mw-toc-heading">目次&lt;/h2>
&lt;h2>&lt;span id=".E6.A6.82.E8.A6.81">&lt;/span>&lt;span class="mw-headline" id="概要">概要&lt;/span>&lt;span class="mw-editsection">&lt;span class="mw-editsection-bracket">&#91;&lt;/span>&lt;a title="節を編集: 概要" href="/w/index.php?title=Visual_Basic_for_Applications&amp;amp;action=edit&amp;amp;section=1">編集&lt;/a>&lt;span class="mw-editsection-bracket">]&lt;/span>&lt;/span>&lt;/h2>
&lt;h2>&lt;span id=".E6.A9.9F.E8.83.BD.E3.83.BB.E7.94.A8.E9.80.94">&lt;/span>&lt;span class="mw-headline" id="機能・用途">機能・用途&lt;/span>&lt;span class="mw-editsection">&lt;span class="mw-editsection-bracket">&#91;&lt;/span>&lt;a title="節を編集: 機能・用途" href="/w/index.php?title=Visual_Basic_for_Applications&amp;amp;action=edit&amp;amp;section=2">編集&lt;/a>&lt;span class="mw-editsection-bracket">]&lt;/span>&lt;/span>&lt;/h2>
&lt;h2>&lt;span id="VBA.E3.81.AE.E6.AD.B4.E5.8F.B2">&lt;/span>&lt;span class="mw-headline" id="VBAの歴史">VBAの歴史&lt;/span>&lt;span class="mw-editsection">&lt;span class="mw-editsection-bracket">&#91;&lt;/span>&lt;a title="節を編集: VBAの歴史" href="/w/index.php?title=Visual_Basic_for_Applications&amp;amp;action=edit&amp;amp;section=3">編集&lt;/a>&lt;span class="mw-editsection-bracket">]&lt;/span>&lt;/span>&lt;/h2>
&lt;h2>&lt;span id=".E8.BF.91.E5.B9.B4.E3.81.AE.E5.8B.95.E5.90.91">&lt;/span>&lt;span class="mw-headline" id="近年の動向">近年の動向&lt;/span>&lt;span class="mw-editsection">&lt;span class="mw-editsection-bracket">&#91;&lt;/span>&lt;a title="節を編集: 近年の動向" href="/w/index.php?title=Visual_Basic_for_Applications&amp;amp;action=edit&amp;amp;section=4">編集&lt;/a>&lt;span class="mw-editsection-bracket">]&lt;/span>&lt;/span>&lt;/h2>
&lt;h2>&lt;span id=".E8.B3.87.E6.A0.BC.E6.A4.9C.E5.AE.9A.E8.A9.A6.E9.A8.93">&lt;/span>&lt;span class="mw-headline" id="資格検定試験">資格検定試験&lt;/span>&lt;span class="mw-editsection">&lt;span class="mw-editsection-bracket">&#91;&lt;/span>&lt;a title="節を編集: 資格検定試験" href="/w/index.php?title=Visual_Basic_for_Applications&amp;amp;action=edit&amp;amp;section=5">編集&lt;/a>&lt;span class="mw-editsection-bracket">]&lt;/span>&lt;/span>&lt;/h2>
&lt;h2>&lt;span id=".E3.82.B3.E3.83.BC.E3.83.89.E4.BE.8B">&lt;/span>&lt;span class="mw-headline" id="コード例">コード例&lt;/span>&lt;span class="mw-editsection">&lt;span class="mw-editsection-bracket">&#91;&lt;/span>&lt;a title="節を編集: コード例" href="/w/index.php?title=Visual_Basic_for_Applications&amp;amp;action=edit&amp;amp;section=6">編集&lt;/a>&lt;span class="mw-editsection-bracket">]&lt;/span>&lt;/span>&lt;/h2>
&lt;h2>&lt;span id="VBA.E3.81.AE.E3.82.BB.E3.82.AD.E3.83.A5.E3.83.AA.E3.83.86.E3.82.A3.E5.95.8F.E9.A1.8C">&lt;/span>&lt;span class="mw-headline" id="VBAのセキュリティ問題">VBAのセキュリティ問題&lt;/span>&lt;span class="mw-editsection">&lt;span class="mw-editsection-bracket">&#91;&lt;/span>&lt;a title="節を編集: VBAのセキュリティ問題" href="/w/index.php?title=Visual_Basic_for_Applications&amp;amp;action=edit&amp;amp;section=8">編集&lt;/a>&lt;span class="mw-editsection-bracket">]&lt;/span>&lt;/span>&lt;/h2>
&lt;h2>&lt;span id=".E9.96.A2.E9.80.A3.E9.A0.85.E7.9B.AE">&lt;/span>&lt;span class="mw-headline" id="関連項目">関連項目&lt;/span>&lt;span class="mw-editsection">&lt;span class="mw-editsection-bracket">&#91;&lt;/span>&lt;a title="節を編集: 関連項目" href="/w/index.php?title=Visual_Basic_for_Applications&amp;amp;action=edit&amp;amp;section=9">編集&lt;/a>&lt;span class="mw-editsection-bracket">]&lt;/span>&lt;/span>&lt;/h2>
&lt;h2>&lt;span id=".E8.84.9A.E6.B3.A8">&lt;/span>&lt;span class="mw-headline" id="脚注">脚注&lt;/span>&lt;span class="mw-editsection">&lt;span class="mw-editsection-bracket">&#91;&lt;/span>&lt;a title="節を編集: 脚注" href="/w/index.php?title=Visual_Basic_for_Applications&amp;amp;action=edit&amp;amp;section=10">編集&lt;/a>&lt;span class="mw-editsection-bracket">]&lt;/span>&lt;/span>&lt;/h2>
&lt;h2>&lt;span id=".E5.A4.96.E9.83.A8.E3.83.AA.E3.83.B3.E3.82.AF">&lt;/span>&lt;span class="mw-headline" id="外部リンク">外部リンク&lt;/span>&lt;span class="mw-editsection">&lt;span class="mw-editsection-bracket">&#91;&lt;/span>&lt;a title="節を編集: 外部リンク" href="/w/index.php?title=Visual_Basic_for_Applications&amp;amp;action=edit&amp;amp;section=11">編集&lt;/a>&lt;span class="mw-editsection-bracket">]&lt;/span>&lt;/span>&lt;/h2>
&lt;h2>案内メニュー&lt;/h2>


＝＝＝＝＝nameから取得＝＝＝＝＝
&lt;input name="search" title="Wikipedia内を検索する &#91;alt-f]" id="searchInput" accesskey="f" type="search" placeholder="Wikipedia内を検索">


＝＝＝＝＝classから取得＝＝＝＝＝
&lt;li class="toclevel-1 tocsection-1">&lt;a href="#概要">&lt;span class="tocnumber">1&lt;/span> &lt;span class="toctext">概要&lt;/span>&lt;/a>&lt;/li>
&lt;li class="toclevel-1 tocsection-2">&lt;a href="#機能・用途">&lt;span class="tocnumber">2&lt;/span> &lt;span class="toctext">機能・用途&lt;/span>&lt;/a>&lt;/li>
&lt;li class="toclevel-1 tocsection-3">&lt;a href="#VBAの歴史">&lt;span class="tocnumber">3&lt;/span> &lt;span class="toctext">VBAの歴史&lt;/span>&lt;/a>&lt;/li>
&lt;li class="toclevel-1 tocsection-4">&lt;a href="#近年の動向">&lt;span class="tocnumber">4&lt;/span> &lt;span class="toctext">近年の動向&lt;/span>&lt;/a>&lt;/li>
&lt;li class="toclevel-1 tocsection-5">&lt;a href="#資格検定試験">&lt;span class="tocnumber">5&lt;/span> &lt;span class="toctext">資格検定試験&lt;/span>&lt;/a>&lt;/li>
&lt;li class="toclevel-1 tocsection-6">&lt;a href="#コード例">&lt;span class="tocnumber">6&lt;/span> &lt;span class="toctext">コード例&lt;/span>&lt;/a>
&lt;ul>
&lt;li class="toclevel-2 tocsection-7">&lt;a href="#ユーザー定義関数">&lt;span class="tocnumber">6.1&lt;/span> &lt;span class="toctext">ユーザー定義関数&lt;/span>&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li class="toclevel-1 tocsection-8">&lt;a href="#VBAのセキュリティ問題">&lt;span class="tocnumber">7&lt;/span> &lt;span class="toctext">VBAのセキュリティ問題&lt;/span>&lt;/a>&lt;/li>
&lt;li class="toclevel-1 tocsection-9">&lt;a href="#関連項目">&lt;span class="tocnumber">8&lt;/span> &lt;span class="toctext">関連項目&lt;/span>&lt;/a>&lt;/li>
&lt;li class="toclevel-1 tocsection-10">&lt;a href="#脚注">&lt;span class="tocnumber">9&lt;/span> &lt;span class="toctext">脚注&lt;/span>&lt;/a>&lt;/li>
&lt;li class="toclevel-1 tocsection-11">&lt;a href="#外部リンク">&lt;span class="tocnumber">10&lt;/span> &lt;span class="toctext">外部リンク&lt;/span>&lt;/a>&lt;/li></code></pre>



<h2 id="rtoc-3" ><span id="toc3">メソッド名と、取得できるデータの数について</span></h2>



<ul><li>getElementById</li><li>getElementsByName</li><li>getElementsByTagName</li><li>getElementsByClassName</li></ul>



<p>単数形「Element」と、複数形「Elements」のものがありますね。<br>これはHTMLの構文規則に関係があります。</p>



<p>「Id」の値は、1つのHTMLの中で一意という決まりがあります。そのため、Idは単数形「Element」。それ以外はHTML内に同じ値のものが複数出現しても良いので、複数形の「Elements」が使用されています。</p>



<p>また、getElements…は複数件のデータが取得できるので、取得した要素は配列に格納されます。</p>



<h2 id="rtoc-4" ><span id="toc4">次回の内容</span></h2>



<p>今回は要素を取得するメソッド「getElement（Elements）…」について説明しました。</p>



<p>次回は取得した要素からテキストを抜きだす方法について説明します。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://thanaism.com/archives/548/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】Webスクレイピング-04：[開発]データを取得する</title>
		<link>https://thanaism.com/archives/517</link>
					<comments>https://thanaism.com/archives/517#respond</comments>
		
		<dc:creator><![CDATA[タナイ]]></dc:creator>
		<pubDate>Mon, 18 May 2020 14:42:14 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[VBAで実践するWeb操作（入門編）]]></category>
		<guid isPermaLink="false">https://thanaism.com/?p=517</guid>

					<description><![CDATA[VBAでWEBスクレイピングの第4弾です。 Webスクレイピングによるデータの取得、今回はいよいよ開発に入ります。 Contents 前回のおさらいソースコード他のWebサイトもスクレイピングできる前回のおさらい 前回は [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>VBAでWEBスクレイピングの第4弾です。</p>



<div class="wp-block-cocoon-blocks-micro-balloon-2 micro-balloon micro-top micro-copy"><span class="micro-balloon-content micro-content"><span class="micro-balloon-icon micro-icon fab-lightbulb"></span>前回記事はこちら</span></div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">

<a href="https://thanaism.com/archives/471" title="【VBA】Webスクレイピング-03：[設計]データの取得方法を検討する" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img width="160" height="90" src="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" loading="lazy" srcset="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png 160w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-300x169.png 300w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1024x576.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-768x432.png 768w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1536x864.png 1536w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-120x68.png 120w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-320x180.png 320w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1.png 1920w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【VBA】Webスクレイピング-03：[設計]データの取得方法を検討する</div><div class="blogcard-snippet internal-blogcard-snippet">...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://thanaism.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">thanaism.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.05.18</div></div></div></div></a>

</div>



<p>Webスクレイピングによるデータの取得、今回はいよいよ開発に入ります。</p>



<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame2 preset1 animation-fade rtoc_open default" data-id="517" data-theme="Cocoon Child">
			<div id="rtoc-mokuji-title" class=" rtoc_left">
			<button class="rtoc_open_close rtoc_open"></button>
			<span>Contents</span>
			</div><ol class="rtoc-mokuji decimal_ol level-1"><li class="rtoc-item"><a href="#rtoc-1">前回のおさらい</a></li><li class="rtoc-item"><a href="#rtoc-2">ソースコード</a></li><li class="rtoc-item"><a href="#rtoc-3">他のWebサイトもスクレイピングできる</a></li></ol></div><h2 id="rtoc-1" ><span id="toc1">前回のおさらい</span></h2>



<p>前回は1番～3番の「設計」工程について説明しました。<br>今回は4番の「開発」工程を進めていきます。</p>



<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box"><div class="tab-caption-box-label block-box-label box-label"><span class="tab-caption-box-label-text block-box-label-text box-label-text">全体の流れ</span></div><div class="tab-caption-box-content block-box-content box-content">
<ol><li>[設計]取得したいデータを決める<br>⇒ 「価格」を取得する</li></ol>



<ol start="2"><li>[設計]取得したいデータが、HTMLのどこにあるか確認する<br>⇒ Chrome「開発者ツール」で確認</li></ol>



<ol start="3"><li>[設計]取得したいデータを、どのように取るか検討する<br>⇒ タグの「id=priceblock_ourprice」を使う</li></ol>



<ol start="4"><li>[開発]プログラムを作成し、データを取得する<br>⇒ 今回の記事で説明</li></ol>
</div></div>



<h2 id="rtoc-2" ><span id="toc2">ソースコード</span></h2>



<p>実際に動作するソースコードは以下の通りです。</p>



<pre class="wp-block-code"><code>Option Explicit

Function getPrice(url As String)
    
    '■１．前処理
    'IEのオブジェクトを作成
    Dim ie As InternetExplorer
    Set ie = New InternetExplorer
    
    'IEが開かないように設定
    ie.Visible = False


    '■２．本処理
    '指定のURLを開く
    ie.Navigate (url)
    
    'ページの読み込みが完了するまで待つ
    Do While ie.readyState &lt;> READYSTATE_COMPLETE
        'OSに制御を戻す
        DoEvents
    Loop
             
    '価格を取得する
    Dim price As String
    price = ie.Document.getElementById("priceblock_ourprice").innerText
    
      
    '■３．後処理
    ie.Quit
    Set ie = Nothing
            
    getPrice = price

End Function</code></pre>



<p>この中で、データを取得しているのは以下の１行です。</p>



<pre class="wp-block-code"><code>price = ie.Document.getElementById("priceblock_ourprice").innerText</code></pre>



<p>この1行が何をしているのかを説明していきましょう。</p>



<ol><li><strong>ie</strong><br>Webページを取得するためのアプリケーション（IE）です。</li></ol>



<ol start="2"><li><strong>Document</strong><br>IEで取得したWebページです。</li></ol>



<ol start="3"><li><strong>getElementById(&#8220;priceblock_ourprice&#8221;)<br></strong>Webページから、「id=&#8221;priceblock_ourprice&#8221;を持つ要素（Element）」を取得しています。</li></ol>



<ol start="4"><li><strong>innerText</strong><br>取得した要素（Element）の「内部テキスト（innerText）」を取得しています。</li></ol>



<p>「IE⇒Webページ⇒要素⇒内部テキスト」と、徐々に絞り込まれていくイメージです。<br><img loading="lazy" width="867" height="471" class="wp-image-518" style="width: 800px" src="https://thanaism.com/wp-content/uploads/2020/05/データの絞り込み.png" alt="" srcset="https://thanaism.com/wp-content/uploads/2020/05/データの絞り込み.png 867w, https://thanaism.com/wp-content/uploads/2020/05/データの絞り込み-300x163.png 300w, https://thanaism.com/wp-content/uploads/2020/05/データの絞り込み-768x417.png 768w" sizes="(max-width: 867px) 100vw, 867px" /></p>



<h2 id="rtoc-3" ><span id="toc3">他のWebサイトもスクレイピングできる</span></h2>



<p>Webスクレイピングの基本的な流れは以上となります。<br>「データの取得方法」を変えることで様々なデータを取得できるようになります。</p>



<p>次回は「データの取得方法」について、他にどのような方法があるのかを説明していきます。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://thanaism.com/archives/517/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】Webスクレイピング-03：[設計]データの取得方法を検討する</title>
		<link>https://thanaism.com/archives/471</link>
					<comments>https://thanaism.com/archives/471#respond</comments>
		
		<dc:creator><![CDATA[タナイ]]></dc:creator>
		<pubDate>Mon, 18 May 2020 14:36:25 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[VBAで実践するWeb操作（入門編）]]></category>
		<guid isPermaLink="false">https://thanaism.com/?p=471</guid>

					<description><![CDATA[VBAでWEBスクレイピングシリーズの第3弾です。 今回は、WEBページ内の任意の要素を抜き出すにあたってどのような設計をしていけばよいかを検討していきます。 具体的には、データの取得について以下の流れで進めていきます。 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>VBAでWEBスクレイピングシリーズの第3弾です。</p>



<div class="wp-block-cocoon-blocks-micro-balloon-2 micro-balloon micro-top micro-copy"><span class="micro-balloon-content micro-content"><span class="micro-balloon-icon micro-icon fab-lightbulb"></span>前回記事はこちら</span></div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">

<a href="https://thanaism.com/archives/464" title="【VBA】Webスクレイピング-02：※重要※はじめる前に知っておきたいこと" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img width="160" height="90" src="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" loading="lazy" srcset="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png 160w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-300x169.png 300w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1024x576.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-768x432.png 768w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1536x864.png 1536w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-120x68.png 120w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-320x180.png 320w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1.png 1920w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【VBA】Webスクレイピング-02：※重要※はじめる前に知っておきたいこと</div><div class="blogcard-snippet internal-blogcard-snippet">...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://thanaism.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">thanaism.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.05.08</div></div></div></div></a>

</div>



<p>今回は、WEBページ内の任意の要素を抜き出すにあたってどのような設計をしていけばよいかを検討していきます。</p>



<p>具体的には、データの取得について以下の流れで進めていきます。</p>



<div class="wp-container-1 wp-block-group"><div class="wp-block-group__inner-container">
<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box"><div class="tab-caption-box-label block-box-label box-label"><span class="tab-caption-box-label-text block-box-label-text box-label-text">Webスクレイピング：全体的な流れ</span></div><div class="tab-caption-box-content block-box-content box-content">
<ol><li>[設計]取得したいデータを決める</li><li>[設計]取得したいデータが、HTMLのどこにあるか確認する</li><li>[設計]取得したいデータを、どのように取るか検討する</li><li>[開発]プログラムを作成し、データを取得する</li></ol>
</div></div>



<p>１～３番目は「どのようなプログラムを作成するか」を検討する「設計」という工程です。<br>４番目は、実際にプログラムを作成する「開発」という工程です。</p>



<p>今回の記事では、１～３番目の「設計」工程について説明します。</p>



<p>「設計」工程がうまくいくと、「開発」工程もスムーズに進みますので、しっかりと検討していきましょう。</p>
</div></div>



<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame2 preset1 animation-fade rtoc_open default" data-id="471" data-theme="Cocoon Child">
			<div id="rtoc-mokuji-title" class=" rtoc_left">
			<button class="rtoc_open_close rtoc_open"></button>
			<span>Contents</span>
			</div><ol class="rtoc-mokuji decimal_ol level-1"><li class="rtoc-item"><a href="#rtoc-1">１．[設計]取得したいデータを決める</a></li><li class="rtoc-item"><a href="#rtoc-2">２．[設計]取得したいデータがHTMLのどこにあるか確認する</a></li><li class="rtoc-item"><a href="#rtoc-3">３．[設計]取得したいデータを、どのように取るか検討する</a></li><li class="rtoc-item"><a href="#rtoc-4">【次回】[開発]プログラムを作成し、データを取得する</a></li></ol></div><h2 id="rtoc-1" ><span id="toc1">１．[設計]取得したいデータを決める</span></h2>



<p>まずは「何を取得するか？」を決めます。</p>



<p>「価格」と「商品名」など複数のデータを取得したい場合でも、まずは１つのデータを確実に取得してから、データを追加していきましょう。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-14 sbs-flat sbp-r sbis-sn cf block-box"><div class="speech-person"><figure class="speech-icon"><img src="https://thanaism.com/wp-content/uploads/2020/03/b08e05d4a9e3c8435fd93507abd07c7d.png" alt="タナイ" class="speech-icon-image"/></figure><div class="speech-name">タナイ</div></div><div class="speech-balloon">
<p>今回は「価格」を取得します。</p>
</div></div>



<h2 id="rtoc-2" ><span id="toc2">２．[設計]取得したいデータがHTMLのどこにあるか確認する</span></h2>



<div class="wp-container-2 wp-block-group"><div class="wp-block-group__inner-container">
<p>「価格」が、HTMLのどこにあるかを確認します。<br>Chromeの場合、F12キーで「開発者ツール」を起動し、価格が表示されているHTMLを簡単に確認することができます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="546" src="https://thanaism.com/wp-content/uploads/2020/05/開発者ツール-1-1024x546.png" alt="" class="wp-image-473" srcset="https://thanaism.com/wp-content/uploads/2020/05/開発者ツール-1-1024x546.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/開発者ツール-1-300x160.png 300w, https://thanaism.com/wp-content/uploads/2020/05/開発者ツール-1-768x409.png 768w, https://thanaism.com/wp-content/uploads/2020/05/開発者ツール-1.png 1366w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>以下のHTMLに価格が入っていました。</p>



<pre class="wp-block-code"><code>&lt;span id="priceblock_ourprice" class="a-size-medium a-color-price priceBlockBuyingPriceString">￥5,673&lt;/span></code></pre>
</div></div>



<h2 id="rtoc-3" ><span id="toc3">３．[設計]取得したいデータを、どのように取るか検討する</span></h2>



<div class="wp-container-3 wp-block-group"><div class="wp-block-group__inner-container">
<p>次に、この価格をどのように取得すれば良いかを検討します。</p>



<pre class="wp-block-code"><code>&lt;span id="priceblock_ourprice" class="a-size-medium a-color-price priceBlockBuyingPriceString">￥5,673&lt;/span></code></pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-14 sbs-flat sbp-r sbis-sn cf block-box"><div class="speech-person"><figure class="speech-icon"><img src="https://thanaism.com/wp-content/uploads/2020/03/b08e05d4a9e3c8435fd93507abd07c7d.png" alt="タナイ" class="speech-icon-image"/></figure><div class="speech-name">タナイ</div></div><div class="speech-balloon">
<p>HTMLにはid、class、tagnameといったブロックごとの属性があります。それらをもとに、目的のデータを誤りなく抽出するのに最適な識別子を判別していきます。</p>
</div></div>



<p>検討のヒントは以下の通りです。</p>



<ul><li>&lt;span&gt;タグで囲まれている。</li><li>&lt;span&gt;タグの「id」が「priceblock_ourprice」である。</li><li>&lt;span&gt;タグの「class」が「a-size-medium a-color-price priceBlockBuyingPriceString」である。</li></ul>



<p>このヒントから、重複なくデータを一意に取得するには「id」を使うのが良さそうです。</p>
</div></div>



<h2 id="rtoc-4" ><span id="toc4">【次回】[開発]プログラムを作成し、データを取得する</span></h2>



<p>次回は「設計」工程で検討した内容を、実際にプログラムにする「開発」工程について説明します。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://thanaism.com/archives/471/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】Webスクレイピング-02：※重要※はじめる前に知っておきたいこと</title>
		<link>https://thanaism.com/archives/464</link>
					<comments>https://thanaism.com/archives/464#respond</comments>
		
		<dc:creator><![CDATA[タナイ]]></dc:creator>
		<pubDate>Fri, 08 May 2020 00:40:14 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[VBAで実践するWeb操作（入門編）]]></category>
		<guid isPermaLink="false">https://thanaism.com/?p=464</guid>

					<description><![CDATA[今回は、Webスクレイピングを使ってECサイトから価格を取得するサンプルを作成します。 Contents ※重要※Webスクレイピングにあたっての注意Webスクレイピング：サンプルの利用目的Webスクレイピング：サンプル [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>今回は、Webスクレイピングを使ってECサイトから価格を取得するサンプルを作成します。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-12 sbs-flat sbp-r sbis-sn cf block-box"><div class="speech-person"><figure class="speech-icon"><img src="https://thanaism.com/wp-content/uploads/2020/05/04435120-4964-4241-831B-7A59726DC543.png" alt="タナイ" class="speech-icon-image"/></figure><div class="speech-name">タナイ</div></div><div class="speech-balloon">
<p>今回は、作成にあたり<span class="bold-red">絶対に守ってほしい注意点</span>も紹介します。</p>
</div></div>



<div class="wp-block-cocoon-blocks-micro-balloon-2 micro-balloon micro-top micro-copy has-text-color has-key-color-color"><span class="micro-balloon-content micro-content"><span class="micro-balloon-icon micro-icon fab-lightbulb"></span>前回記事はこちら</span></div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">



<a href="https://thanaism.com/archives/386" title="【VBA】Webスクレイピング-01：タイトルの取得" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img width="160" height="90" src="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" loading="lazy" srcset="https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-160x90.png 160w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-300x169.png 300w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1024x576.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-768x432.png 768w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-1536x864.png 1536w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-120x68.png 120w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1-320x180.png 320w, https://thanaism.com/wp-content/uploads/2020/05/VBAで実践するWeb操作-1.png 1920w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【VBA】Webスクレイピング-01：タイトルの取得</div><div class="blogcard-snippet internal-blogcard-snippet">...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://thanaism.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">thanaism.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.05.04</div></div></div></div></a>



</div>



<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame2 preset1 animation-fade rtoc_open default" data-id="464" data-theme="Cocoon Child">
			<div id="rtoc-mokuji-title" class=" rtoc_left">
			<button class="rtoc_open_close rtoc_open"></button>
			<span>Contents</span>
			</div><ol class="rtoc-mokuji decimal_ol level-1"><li class="rtoc-item"><a href="#rtoc-1">※重要※Webスクレイピングにあたっての注意</a></li><li class="rtoc-item"><a href="#rtoc-2">Webスクレイピング：サンプルの利用目的</a></li><li class="rtoc-item"><a href="#rtoc-3">Webスクレイピング：サンプルコード</a></li><li class="rtoc-item"><a href="#rtoc-4">Webスクレイピング：サンプルの実行結果</a></li><li class="rtoc-item"><a href="#rtoc-5">Webスクレイピング：次回の記事</a></li></ol></div><h2 id="rtoc-1" ><span id="toc1">※重要※Webスクレイピングにあたっての注意</span></h2>



<div class="wp-container-5 wp-block-group"><div class="wp-block-group__inner-container">
<div class="wp-container-4 wp-block-group"><div class="wp-block-group__inner-container">
<p>WebスクレイピングでWebサイトから情報を取得する際には、利用規約を必ず確認してください。</p>



<p>利用目的やアクセス頻度によっては、Webサイトからアクセスを禁止されてしまう可能性があります。</p>
</div></div>
</div></div>



<div class="wp-block-cocoon-blocks-tab-box-1 blank-box bb-tab bb-check block-box">
<ul><li><span style="text-decoration: underline;">利用目的</span><br>Webサイトに掲載されている情報の著作権は、基本的にはWebサイトが所有しています。Webサイトの情報を他社に販売する目的で取得することは禁止されているサイトが多いです。<br></li><li><span style="text-decoration: underline;">アクセス頻度</span><br>Webサイトは人が見ることを前提に作られています。プログラムを使い、人間には不可能なスピード（1秒間に100回、など）でアクセスすると、Webサイトのサーバーに大きな負荷がかかり、最悪の場合、停止してしまうこともあります。それを防ぐために、多くのサイトでは、プログラムでのアクセスまたは、高頻度のアクセスを禁止にしています。</li></ul>
</div>



<h2 id="rtoc-2" ><span id="toc2">Webスクレイピング：サンプルの利用目的</span></h2>



<div class="wp-container-6 wp-block-group"><div class="wp-block-group__inner-container">
<p>今回作成するサンプルは、利用規約に抵触しないよう、利用目的とアクセス頻度は以下の通り定義しています。</p>



<div class="wp-block-cocoon-blocks-tab-box-1 blank-box bb-tab bb-check block-box">
<ul><li><span style="text-decoration: underline;">利用目的</span><br>ExcelVBAの学習のために使用します。取得したデータは二次利用しません。</li><li><span style="text-decoration: underline;">アクセス頻度</span><br>Webサイトへの負荷を抑えるため、1回の実行でアクセスするのは、1ページのみとします。</li></ul>
</div>
</div></div>



<h2 id="rtoc-3" ><span id="toc3">Webスクレイピング：サンプルコード</span></h2>



<pre class="wp-block-code"><code>Option Explicit

Function getPrice(url As String)
    
    '■１．前処理
    'IEのオブジェクトを作成
    Dim ie As InternetExplorer
    Set ie = New InternetExplorer
    
    'IEが開かないように設定
    ie.Visible = False


    '■２．本処理
    '指定のURLを開く
    ie.Navigate (url)
    
    'ページの読み込みが完了するまで待つ
    Do While ie.readyState &lt;> READYSTATE_COMPLETE
        'OSに制御を戻す
        DoEvents
    Loop
             
    '価格を取得する
    Dim price As String
    price = ie.Document.getElementById("priceblock_ourprice").innerText
    
        
    '■３．後処理
    ie.Quit
    Set ie = Nothing
            
    getPrice = price

End Function</code></pre>



<h2 id="rtoc-4" ><span id="toc4">Webスクレイピング：サンプルの実行結果</span></h2>



<p>AmazonでKindle Paperwhiteの価格を取得してみました。<br>※現在のサンプルプログラムは、商品の種類によってはエラーになる場合があります。<br>以下のページで価格を取得できることを確認しています。</p>


<div class="amazon-item-box product-item-box no-icon pis-m digital-text B07HCSQ48P cf"><figure class="amazon-item-thumb product-item-thumb"><a rel="nofollow noopener" href="https://www.amazon.co.jp/dp/B07HCSQ48P?tag=th8n81-22&#038;linkCode=ogi&#038;th=1&#038;psc=1" class="amazon-item-thumb-link product-item-thumb-link image-thumb" target="_blank" title="Kindle Paperwhite 防水機能搭載 wifi 8GB ブラック 広告つき 電子書籍リーダー"><img src="https://m.media-amazon.com/images/I/419mejVCq1L._SL160_.jpg" alt="Kindle Paperwhite 防水機能搭載 wifi 8GB ブラック 広告つき 電子書籍リーダー" width="160" height="160" class="amazon-item-thumb-image product-item-thumb-image"><div class="amazon-item-thumb-l product-item-thumb-l image-content"><img src="https://m.media-amazon.com/images/I/419mejVCq1L._SL500_.jpg" alt="" width="500" height="500"></div></a><a rel="nofollow noopener" href="https://www.amazon.co.jp/dp/B07HCSQ48P?tag=th8n81-22&#038;linkCode=ogi&#038;th=1&#038;psc=1" class="swatchimages" target="_blank"><div class="image-thumb swatch-image-thumb si-thumb"><img src="https://m.media-amazon.com/images/I/51F7jz70jlL._SL75_.jpg" alt="" width="75" height="75"><div class="image-content"><img src="https://m.media-amazon.com/images/I/51F7jz70jlL._SL500_.jpg" alt="" width="500" height="500"></div></div><div class="image-thumb swatch-image-thumb si-thumb"><img src="https://m.media-amazon.com/images/I/51HnUojMD6S._SL75_.jpg" alt="" width="75" height="75"><div class="image-content"><img src="https://m.media-amazon.com/images/I/51HnUojMD6S._SL500_.jpg" alt="" width="500" height="500"></div></div><div class="image-thumb swatch-image-thumb si-thumb"><img src="https://m.media-amazon.com/images/I/31DEG+I5wpL._SL75_.jpg" alt="" width="75" height="75"><div class="image-content"><img src="https://m.media-amazon.com/images/I/31DEG+I5wpL._SL500_.jpg" alt="" width="500" height="500"></div></div><div class="image-thumb swatch-image-thumb si-thumb sp-display-none"><img src="https://m.media-amazon.com/images/I/41GHqHd1sxL._SL75_.jpg" alt="" width="75" height="75"><div class="image-content"><img src="https://m.media-amazon.com/images/I/41GHqHd1sxL._SL500_.jpg" alt="" width="500" height="500"></div></div><div class="image-thumb swatch-image-thumb si-thumb sp-display-none"><img src="https://m.media-amazon.com/images/I/51L0NUCCefL._SL75_.jpg" alt="" width="75" height="75"><div class="image-content"><img src="https://m.media-amazon.com/images/I/51L0NUCCefL._SL500_.jpg" alt="" width="500" height="500"></div></div><div class="image-thumb swatch-image-thumb si-thumb sp-display-none display-none"><img src="https://m.media-amazon.com/images/I/511hveQuZaL._SL75_.jpg" alt="" width="75" height="75"><div class="image-content"><img src="https://m.media-amazon.com/images/I/511hveQuZaL._SL500_.jpg" alt="" width="500" height="500"></div></div><div class="image-thumb swatch-image-thumb si-thumb sp-display-none display-none"><img src="https://m.media-amazon.com/images/I/41BpCtgaFrL._SL75_.jpg" alt="" width="75" height="42"><div class="image-content"><img src="https://m.media-amazon.com/images/I/41BpCtgaFrL._SL500_.jpg" alt="" width="500" height="286"></div></div></a></figure><div class="amazon-item-content product-item-content cf"><div class="amazon-item-title product-item-title"><a rel="nofollow noopener" href="https://www.amazon.co.jp/dp/B07HCSQ48P?tag=th8n81-22&#038;linkCode=ogi&#038;th=1&#038;psc=1" class="amazon-item-title-link product-item-title-link" target="_blank" title="Kindle Paperwhite 防水機能搭載 wifi 8GB ブラック 広告つき 電子書籍リーダー">Kindle Paperwhite 防水機能搭載 wifi 8GB ブラック 広告つき 電子書籍リーダー</a></div><div class="amazon-item-snippet product-item-snippet"><div class="amazon-item-maker product-item-maker">Amazon</div><div class="amazon-item-review product-item-review item-review"><span class="fa fa-comments-o" aria-hidden="true"></span> <a rel="nofollow noopener" class="amazon-item-review-link  product-item-review-link item-review-link" href="https://www.amazon.co.jp/product-reviews/B07HCSQ48P/?tag=th8n81-22" target="_blank">Amazonの商品レビュー・口コミを見る</a></div></div><div class="amazon-item-buttons product-item-buttons"><div class="shoplinkamazon"><a rel="nofollow noopener" href="https://www.amazon.co.jp/gp/search?keywords=Kindle+Paperwhite+%E9%98%B2%E6%B0%B4%E6%A9%9F%E8%83%BD%E6%90%AD%E8%BC%89+Wi-Fi+8GB+%E5%BA%83%E5%91%8A%E3%81%A4%E3%81%8D+%E9%9B%BB%E5%AD%90%E6%9B%B8%E7%B1%8D%E3%83%AA%E3%83%BC%E3%83%80%E3%83%BC&#038;tag=th8n81-22" target="_blank">Amazon</a></div><div class="shoplinkrakuten"><a rel="nofollow noopener" href="https://hb.afl.rakuten.co.jp/hgc/1b9aa895.7ac02882.1b9aa896.b5bc8e56/?pc=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2FKindle+Paperwhite+%E9%98%B2%E6%B0%B4%E6%A9%9F%E8%83%BD%E6%90%AD%E8%BC%89+Wi-Fi+8GB+%E5%BA%83%E5%91%8A%E3%81%A4%E3%81%8D+%E9%9B%BB%E5%AD%90%E6%9B%B8%E7%B1%8D%E3%83%AA%E3%83%BC%E3%83%80%E3%83%BC%2F&#038;m=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2FKindle+Paperwhite+%E9%98%B2%E6%B0%B4%E6%A9%9F%E8%83%BD%E6%90%AD%E8%BC%89+Wi-Fi+8GB+%E5%BA%83%E5%91%8A%E3%81%A4%E3%81%8D+%E9%9B%BB%E5%AD%90%E6%9B%B8%E7%B1%8D%E3%83%AA%E3%83%BC%E3%83%80%E3%83%BC%2F" target="_blank">楽天</a></div></div></div></div>



<div class="wp-block-cocoon-blocks-micro-balloon-2 micro-balloon micro-bottom micro-copy has-text-color has-key-color-color"><span class="micro-balloon-content micro-content"><span class="micro-balloon-icon micro-icon fab-book"></span>Webスクレイピングに関係なくKindleは<a href="https://note.com/hifu_pong/n/neec3bd8fa944">おすすめ</a>です</span></div>



<figure class="wp-block-image size-large"><img loading="lazy" width="1024" height="538" src="https://thanaism.com/wp-content/uploads/2020/05/amazon-1024x538.png" alt="" class="wp-image-467" srcset="https://thanaism.com/wp-content/uploads/2020/05/amazon-1024x538.png 1024w, https://thanaism.com/wp-content/uploads/2020/05/amazon-300x158.png 300w, https://thanaism.com/wp-content/uploads/2020/05/amazon-768x403.png 768w, https://thanaism.com/wp-content/uploads/2020/05/amazon.png 1365w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p><span style="text-decoration: underline;">実行結果<br></span><img loading="lazy" width="458" height="133" class="wp-image-499" style="width: 458px;" src="https://thanaism.com/wp-content/uploads/2020/05/image-4.png" alt="" srcset="https://thanaism.com/wp-content/uploads/2020/05/image-4.png 458w, https://thanaism.com/wp-content/uploads/2020/05/image-4-300x87.png 300w" sizes="(max-width: 458px) 100vw, 458px" /></p>



<h2 id="rtoc-5" ><span id="toc5">Webスクレイピング：次回の記事</span></h2>



<p>次回の記事では、プログラムの作り方について説明していきます。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://thanaism.com/archives/464/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】Webスクレイピング-01：タイトルの取得</title>
		<link>https://thanaism.com/archives/386</link>
					<comments>https://thanaism.com/archives/386#respond</comments>
		
		<dc:creator><![CDATA[タナイ]]></dc:creator>
		<pubDate>Mon, 04 May 2020 04:14:32 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[VBAで実践するWeb操作（入門編）]]></category>
		<guid isPermaLink="false">https://thanaism.com/?p=386</guid>

					<description><![CDATA[VBAというとローカル・オフライン環境で動作するものが大半を占めますが、実はWeb操作をすることも可能です。 WebスクレイピングというとPythonなどのライブラリが豊富な言語もありますが、サラリーマンが会社で使いたい [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>VBAというとローカル・オフライン環境で動作するものが大半を占めますが、実はWeb操作をすることも可能です。</p>



<p>WebスクレイピングというとPythonなどのライブラリが豊富な言語もありますが、サラリーマンが会社で使いたいというシーンにおいては実行環境が整えられないという課題もあります。</p>



<p>そうしたなか、Excelは多くの企業でインストールされているアプリケーションのため、環境の用意がほぼ不要であるという点で有利です。しかも、VBAは工夫次第で様々なWebページ操作が実現できます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-11 sbs-flat sbp-l sbis-cn cf block-box"><div class="speech-person"><figure class="speech-icon"><img src="https://thanaism.com/wp-content/uploads/2020/03/b08e05d4a9e3c8435fd93507abd07c7d.png" alt="タナイ" class="speech-icon-image"/></figure><div class="speech-name">タナイ</div></div><div class="speech-balloon">
<p>今回は、「<strong>VBAで実践するWeb操作</strong>」入門編の第1弾です。</p>
</div></div>



<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame2 preset1 animation-fade rtoc_open default" data-id="386" data-theme="Cocoon Child">
			<div id="rtoc-mokuji-title" class=" rtoc_left">
			<button class="rtoc_open_close rtoc_open"></button>
			<span>Contents</span>
			</div><ol class="rtoc-mokuji decimal_ol level-1"><li class="rtoc-item"><a href="#rtoc-1">VBAで実践するWeb操作：環境構築とタイトルの取得</a></li><li class="rtoc-item"><a href="#rtoc-2">VBAでWebスクレイピングするための事前設定</a></li><li class="rtoc-item"><a href="#rtoc-3">まず動かしてみよう</a></li><li class="rtoc-item"><a href="#rtoc-4">コードの解説</a><ul class="rtoc-mokuji mokuji_ul level-2"><li class="rtoc-item"><a href="#rtoc-5">１．前処理</a></li><li class="rtoc-item"><a href="#rtoc-6">２．本処理</a></li><li class="rtoc-item"><a href="#rtoc-7">３．後処理</a></li></ul></li><li class="rtoc-item"><a href="#rtoc-8">Webページ操作の応用例</a><ul class="rtoc-mokuji mokuji_ul level-2"><li class="rtoc-item"><a href="#rtoc-9">VBA独学にオススメの書籍</a></li></ul></li></ol></div><h2 id="rtoc-1" ><span id="toc1">VBAで実践するWeb操作：環境構築とタイトルの取得</span></h2>



<div class="wp-container-7 wp-block-group"><div class="wp-block-group__inner-container">
<p>このシリーズではExcel VBAで、Webページの操作を行っていきます。<br>今回は基礎編として、Webページにアクセスするための環境構築を行い、タイトルを取得するというシンプルなプログラムを作成してみましょう。</p>
</div></div>



<h2 id="rtoc-2" ><span id="toc2">VBAでWebスクレイピングするための事前設定</span></h2>



<p>VBAによるWebスクレイピングを行うプログラムでは、『ライブラリ』を使用する必要があります。<br>VBAエディタの[ツール]-「参照設定」を開き、以下の２つのライブラリにチェックを付けてください。</p>



<div class="wp-block-cocoon-blocks-micro-text micro-text micro-copy micro-bottom has-text-color has-key-color-color"><span class="micro-text-content micro-content"><span class="micro-text-icon micro-icon fab-info-circle"></span>今回は、このうち1つのライブラリの参照のみで足りるプログラムを紹介していますが、次回以降は2つとも必要になるケースが多いので、先に参照設定をしておきましょう。</span></div>



<p><img loading="lazy" width="520" height="395" class="wp-image-391" style="width: 300px" src="https://thanaism.com/wp-content/uploads/2020/05/参照設定.png" alt="" srcset="https://thanaism.com/wp-content/uploads/2020/05/参照設定.png 520w, https://thanaism.com/wp-content/uploads/2020/05/参照設定-300x228.png 300w" sizes="(max-width: 520px) 100vw, 520px" /></p>



<div class="wp-block-cocoon-blocks-tab-box-1 blank-box bb-tab bb-check block-box">
<ul><li>Microsoft Internet Controls</li><li>Microsoft HTML Object Library</li></ul>
</div>



<div class="wp-block-cocoon-blocks-micro-text micro-text micro-copy micro-bottom has-text-color has-key-color-color"><span class="micro-text-content micro-content"><span class="micro-text-icon micro-icon fab-info-circle"></span>動作は遅くなってしまいますが、「遅延バインディング」を使用すると参照設定をせずにライブラリを使用することも可能です。ただし、その場合はライブラリに含まれるステートメントに対してはエディタの入力補完は効かなくなります。</span></div>



<h2 id="rtoc-3" ><span id="toc3">まず動かしてみよう</span></h2>



<p>チェックを付けたら、標準モジュールを挿入し、以下のコードを書いてください（指定したURLからタイトルを取得するユーザー定義関数を作成しています）。</p>



<pre class="wp-block-code"><code>Option Explicit

Function getTitle(url As String)

'■１．前処理
'IEのオブジェクトを作成
Dim ie As InternetExplorer
Set ie = New InternetExplorer

'IEが開かないように設定
ie.Visible = False


'■２．本処理
'指定のURLを開く
ie.Navigate (url)

'ページの読み込みが完了するまで待つ
Do While ie.readyState &lt;> READYSTATE_COMPLETE
    'OSに制御を戻す
    DoEvents
Loop

'&lt;title>タグの内容を取得する
Dim title As String
title = ie.Document.getElementsByTagName("title")(0).innerText


'■３．後処理
ie.Quit
Set ie = Nothing

getTitle = title

End Function</code></pre>



<p>以降は、「getTitle（取得したいWebページのURL）」という関数名で呼び出せるようになります。</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="228" height="132" src="https://thanaism.com/wp-content/uploads/2020/05/image-3.png" alt="" class="wp-image-398" srcset="https://thanaism.com/wp-content/uploads/2020/05/image-3.png 228w, https://thanaism.com/wp-content/uploads/2020/05/image-3-120x68.png 120w" sizes="(max-width: 228px) 100vw, 228px" /><figcaption>ユーザー定義関数はインテリセンスも効きます</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" width="260" height="101" src="https://thanaism.com/wp-content/uploads/2020/05/image-2.png" alt="" class="wp-image-397"/><figcaption>引数に直接指定する場合はダブルクォーテーション(&#8220;&#8221;)で囲ってください</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" width="970" height="241" src="https://thanaism.com/wp-content/uploads/2020/05/タイトルリスト.png" alt="" class="wp-image-392" srcset="https://thanaism.com/wp-content/uploads/2020/05/タイトルリスト.png 970w, https://thanaism.com/wp-content/uploads/2020/05/タイトルリスト-300x75.png 300w, https://thanaism.com/wp-content/uploads/2020/05/タイトルリスト-768x191.png 768w" sizes="(max-width: 970px) 100vw, 970px" /><figcaption>別のセルを参照する場合はダブルクォーテーションで囲わなくてもOKです</figcaption></figure>



<h2 id="rtoc-4" ><span id="toc4">コードの解説</span></h2>



<p>大きく分けて、以下の３ステップで処理を行います。</p>



<div class="wp-block-cocoon-blocks-tab-box-1 blank-box bb-tab bb-check block-box">
<ol><li>前処理：本処理のための事前準備</li><li>本処理：実際にやりたい処理</li><li>後処理：終了後の片づけ</li></ol>
</div>



<p>この中の「前処理」「後処理」は、Webページの操作を行うVBAであれば毎回ほぼ同じ内容になりますので、覚えてしまうと良いでしょう。<br>では、各ステップを見ていきましょう。</p>



<h3 id="rtoc-5" ><span id="toc5">１．前処理</span></h3>



<p>Webページにアクセスするための「IE」のオブジェクトを作成しています。</p>



<pre class="wp-block-verse"><br>ie.Visible = False<br></pre>



<p>上記を設定した場合、IEは画面には表示されず、バックグラウンドで動く状態になります。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-11 sbs-flat sbp-l sbis-cn cf block-box"><div class="speech-person"><figure class="speech-icon"><img src="https://thanaism.com/wp-content/uploads/2020/03/b08e05d4a9e3c8435fd93507abd07c7d.png" alt="タナイ" class="speech-icon-image"/></figure><div class="speech-name">タナイ</div></div><div class="speech-balloon">
<p>Trueにすると、この関数を呼び出すたびにIEが開くので画面が見づらくなります。</p>
</div></div>



<h3 id="rtoc-6" ><span id="toc6">２．本処理</span></h3>



<p>Webページを開き、「title」タグの中身を取得します。<br>ここでポイントになるのは、真ん中にある「<strong>ページの読み込みが完了するまで待つ</strong>」ところです。</p>



<p>「readyState」というプロパティが「READYSTATE_COMPLETE」になるまで、IEは「ページの読み込み中」の状態です。<br>「ページの読み込み中」の状態では、titleタグが読み込まれておらず、取得できない可能性がありますので、読み込み完了を待ってからtitleタグを取得しています。</p>



<div class="wp-block-cocoon-blocks-tab-box-1 blank-box bb-tab bb-check block-box">
<p>ページの読み込み完了時、<strong>readyState</strong>プロパティが<strong>READYSTATE_COMPLETE</strong>となる</p>
</div>



<h3 id="rtoc-7" ><span id="toc7">３．後処理</span></h3>



<p>前処理で開いたIEを閉じます。<br>この処理を行わないと、バックグラウンドでたくさんのIEが起動したままになり、パソコンの動作が不安定になってしまいますので、忘れないように注意しましょう。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-11 sbs-flat sbp-l sbis-cn cf block-box"><div class="speech-person"><figure class="speech-icon"><img src="https://thanaism.com/wp-content/uploads/2020/03/b08e05d4a9e3c8435fd93507abd07c7d.png" alt="タナイ" class="speech-icon-image"/></figure><div class="speech-name">タナイ</div></div><div class="speech-balloon">
<p>IEに限らず、外部オブジェクトはちゃんと<strong>終了処理</strong>をすることが重要です</p>
</div></div>



<h2 id="rtoc-8" ><span id="toc8">Webページ操作の応用例</span></h2>



<p>今回のサンプルを応用すると、他にもこんなことができるようになります。</p>



<div class="wp-block-cocoon-blocks-tab-box-1 blank-box bb-tab bb-point block-box">
<ul><li>HTMLソースの取得</li><li>Webページにある画像の一括ダウンロード</li><li>ECサイトの価格チェック</li></ul>
</div>



<p>今後も解説記事を投稿していきますが、腕前に自信のある方はぜひ今回の記事をもとに自力で挑戦してみてください！</p>



<h3 id="rtoc-9" ><span id="toc9">VBA独学にオススメの書籍</span></h3>



<p>在宅勤務で通勤時間が浮いたならVBAの学習に充ててスキルアップを目指しませんか。</p>



<div class="wp-block-cocoon-blocks-micro-balloon-2 micro-balloon micro-top micro-copy has-text-color has-key-color-color"><span class="micro-balloon-content micro-content"><span class="micro-balloon-icon micro-icon fab-info-circle"></span>ただのサラリーマンだった管理人がVBA副業で月30万以上稼げるようになったキッカケの書籍です</span></div>


<div class="amazon-item-box product-item-box no-icon pis-m 本 4802611609 cf"><figure class="amazon-item-thumb product-item-thumb"><a rel="nofollow noopener" href="https://www.amazon.co.jp/dp/4802611609?tag=th8n81-22&#038;linkCode=ogi&#038;th=1&#038;psc=1" class="amazon-item-thumb-link product-item-thumb-link image-thumb" target="_blank" title="入門レベルでは決して足りない実務に必須のスキルとは ExcelVBA 実戦のための技術"><img src="https://m.media-amazon.com/images/I/51bYNirWwDL._SL160_.jpg" alt="入門レベルでは決して足りない実務に必須のスキルとは ExcelVBA 実戦のための技術" width="126" height="160" class="amazon-item-thumb-image product-item-thumb-image"><div class="amazon-item-thumb-l product-item-thumb-l image-content"><img src="https://m.media-amazon.com/images/I/51bYNirWwDL._SL500_.jpg" alt="" width="394" height="500"></div></a><a rel="nofollow noopener" href="https://www.amazon.co.jp/dp/4802611609?tag=th8n81-22&#038;linkCode=ogi&#038;th=1&#038;psc=1" class="swatchimages" target="_blank"><div class="image-thumb swatch-image-thumb si-thumb"><img src="https://m.media-amazon.com/images/I/41TC25MiA3L._SL75_.jpg" alt="" width="58" height="75"><div class="image-content"><img src="https://m.media-amazon.com/images/I/41TC25MiA3L._SL500_.jpg" alt="" width="393" height="500"></div></div><div class="image-thumb swatch-image-thumb si-thumb"><img src="https://m.media-amazon.com/images/I/5137dNGsghL._SL75_.jpg" alt="" width="75" height="47"><div class="image-content"><img src="https://m.media-amazon.com/images/I/5137dNGsghL._SL500_.jpg" alt="" width="500" height="319"></div></div><div class="image-thumb swatch-image-thumb si-thumb"><img src="https://m.media-amazon.com/images/I/5110OU9v5WL._SL75_.jpg" alt="" width="75" height="48"><div class="image-content"><img src="https://m.media-amazon.com/images/I/5110OU9v5WL._SL500_.jpg" alt="" width="500" height="322"></div></div><div class="image-thumb swatch-image-thumb si-thumb sp-display-none"><img src="https://m.media-amazon.com/images/I/51woZKQ1OYL._SL75_.jpg" alt="" width="75" height="48"><div class="image-content"><img src="https://m.media-amazon.com/images/I/51woZKQ1OYL._SL500_.jpg" alt="" width="500" height="320"></div></div></a></figure><div class="amazon-item-content product-item-content cf"><div class="amazon-item-title product-item-title"><a rel="nofollow noopener" href="https://www.amazon.co.jp/dp/4802611609?tag=th8n81-22&#038;linkCode=ogi&#038;th=1&#038;psc=1" class="amazon-item-title-link product-item-title-link" target="_blank" title="入門レベルでは決して足りない実務に必須のスキルとは ExcelVBA 実戦のための技術">入門レベルでは決して足りない実務に必須のスキルとは ExcelVBA 実戦のための技術</a></div><div class="amazon-item-snippet product-item-snippet"><div class="amazon-item-maker product-item-maker">ソシム</div><div class="product-item-price"><span class="item-price">￥2,640</span><span class="acquired-date">（2022/02/16 18:01時点）</span></div><div class="amazon-item-review product-item-review item-review"><span class="fa fa-comments-o" aria-hidden="true"></span> <a rel="nofollow noopener" class="amazon-item-review-link  product-item-review-link item-review-link" href="https://www.amazon.co.jp/product-reviews/4802611609/?tag=th8n81-22" target="_blank">Amazonの商品レビュー・口コミを見る</a></div></div><div class="amazon-item-buttons product-item-buttons"><div class="shoplinkamazon"><a rel="nofollow noopener" href="https://www.amazon.co.jp/gp/search?keywords=%E5%85%A5%E9%96%80%E3%83%AC%E3%83%99%E3%83%AB%E3%81%A7%E3%81%AF%E6%B1%BA%E3%81%97%E3%81%A6%E8%B6%B3%E3%82%8A%E3%81%AA%E3%81%84%E5%AE%9F%E5%8B%99%E3%81%AB%E5%BF%85%E9%A0%88%E3%81%AE%E3%82%B9%E3%82%AD%E3%83%AB%E3%81%A8%E3%81%AF+ExcelVBA+%E5%AE%9F%E6%88%A6%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E6%8A%80%E8%A1%93&#038;tag=th8n81-22" target="_blank">Amazon</a></div><div class="shoplinkrakuten"><a rel="nofollow noopener" href="https://hb.afl.rakuten.co.jp/hgc/1b9aa895.7ac02882.1b9aa896.b5bc8e56/?pc=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%E5%85%A5%E9%96%80%E3%83%AC%E3%83%99%E3%83%AB%E3%81%A7%E3%81%AF%E6%B1%BA%E3%81%97%E3%81%A6%E8%B6%B3%E3%82%8A%E3%81%AA%E3%81%84%E5%AE%9F%E5%8B%99%E3%81%AB%E5%BF%85%E9%A0%88%E3%81%AE%E3%82%B9%E3%82%AD%E3%83%AB%E3%81%A8%E3%81%AF+ExcelVBA+%E5%AE%9F%E6%88%A6%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E6%8A%80%E8%A1%93%2F&#038;m=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%E5%85%A5%E9%96%80%E3%83%AC%E3%83%99%E3%83%AB%E3%81%A7%E3%81%AF%E6%B1%BA%E3%81%97%E3%81%A6%E8%B6%B3%E3%82%8A%E3%81%AA%E3%81%84%E5%AE%9F%E5%8B%99%E3%81%AB%E5%BF%85%E9%A0%88%E3%81%AE%E3%82%B9%E3%82%AD%E3%83%AB%E3%81%A8%E3%81%AF+ExcelVBA+%E5%AE%9F%E6%88%A6%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E6%8A%80%E8%A1%93%2F" target="_blank">楽天</a></div></div></div></div>
]]></content:encoded>
					
					<wfw:commentRss>https://thanaism.com/archives/386/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
