<?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>マクロ | nujonoa_blog</title>
	<atom:link href="https://nujonoa.com/tag/%E3%83%9E%E3%82%AF%E3%83%AD/feed/" rel="self" type="application/rss+xml" />
	<link>https://nujonoa.com</link>
	<description>人生に役立つデータ集</description>
	<lastBuildDate>Thu, 20 Apr 2023 03:10:55 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>

<image>
	<url>https://nujonoa.com/wp-content/uploads/2019/04/cropped-DSC00976-e1554456145409-32x32.jpg</url>
	<title>マクロ | nujonoa_blog</title>
	<link>https://nujonoa.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>条件付き書式を一括で消す場合は、「Cells.FormatConditions.Delete」</title>
		<link>https://nujonoa.com/cells-formatconditions-delete/</link>
					<comments>https://nujonoa.com/cells-formatconditions-delete/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Thu, 20 Apr 2023 03:09:47 +0000</pubDate>
				<category><![CDATA[エクセル]]></category>
		<category><![CDATA[一括削除]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[vba]]></category>
		<category><![CDATA[条件付き書式]]></category>
		<guid isPermaLink="false">https://nujonoa.com/?p=23852</guid>

					<description><![CDATA[自分の忘備録です。 目次 条件付き書式を一括で消す場合は、「Cells.FormatConditions.Delete」実は動作が重い条件付き書式 条件付き書式を一括で消す場合は、「Cells.FormatConditi [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2023/04/image.png"><img fetchpriority="high" decoding="async" width="685" height="217" src="https://nujonoa.com/wp-content/uploads/2023/04/image.png" alt="" class="wp-image-23853" srcset="https://nujonoa.com/wp-content/uploads/2023/04/image.png 685w, https://nujonoa.com/wp-content/uploads/2023/04/image-500x158.png 500w, https://nujonoa.com/wp-content/uploads/2023/04/image-300x95.png 300w" sizes="(max-width: 685px) 100vw, 685px" /></a></figure>



<p>自分の忘備録です。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">条件付き書式を一括で消す場合は、「Cells.FormatConditions.Delete」</a></li><li><a href="#toc2" tabindex="0">実は動作が重い条件付き書式</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">条件付き書式を一括で消す場合は、「Cells.FormatConditions.Delete」</span></h2>



<p>条件付き書式を一括で消す方法は、</p>



<p>イミディエントウインドで、</p>



<div class="wp-block-group is-style-sticky-yellow is-layout-constrained wp-block-group-is-layout-constrained">
<p><br>Cells.FormatConditions.Delete</p>
</div>



<p><br>を打ち込んでenterになります。</p>



<h2 class="wp-block-heading"><span id="toc2">実は動作が重い条件付き書式</span></h2>



<p>実はファイルが重くなってしまっている原因が、条件付き書式であることが多々ありますので、<br>一括で削除してどれくらいファイルの動きが軽くなるか、試してみるといいと思います！！！</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/cells-formatconditions-delete/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】右クリックのメニューにマクロを追加する方法</title>
		<link>https://nujonoa.com/add-menu-to-right-click/</link>
					<comments>https://nujonoa.com/add-menu-to-right-click/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Thu, 28 Jan 2021 12:17:33 +0000</pubDate>
				<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[vba]]></category>
		<category><![CDATA[右クリック]]></category>
		<category><![CDATA[メニュー]]></category>
		<guid isPermaLink="false">http://nujonoa.com/?p=8687</guid>

					<description><![CDATA[右クリックにマクロを登録すると非常にマクロの有用性が広がります。また、年配の方にも使いやすいプログラムになりますので、ぜひ覚えていってください！！ 目次 【VBA】右クリックのメニューにマクロを追加する方法プログラム説明 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>右クリックにマクロを登録すると非常にマクロの有用性が広がります。<br>また、年配の方にも使いやすいプログラムになりますので、<br>ぜひ覚えていってください！！</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">【VBA】右クリックのメニューにマクロを追加する方法</a></li><li><a href="#toc2" tabindex="0">プログラム説明</a><ol><li><a href="#toc3" tabindex="0">メニューの登録と削除</a></li><li><a href="#toc4" tabindex="0">Auto_Open()　Auto_Close()　との組み合わせ</a></li></ol></li><li><a href="#toc5" tabindex="0">途中で落ちてしまった時、、</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">【VBA】右クリックのメニューにマクロを追加する方法</span></h2>



<p>右クリックのメニューのVBAのプログラムを登録する方法は、下記の通りです。<br><span class="marker-animation">※ダブルクリックでコピーできます。</span></p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
'ブックが開いた時に、右クリックに登録
Private Sub Auto_Open()

    With CommandBars(&quot;Cell&quot;).Controls.Add(Before:=1)  '1が一番上
        .Caption = &quot;RC_TEST(&amp;P)&quot; '表示名
        .OnAction = &quot;TEST&quot; 'プログラム名
    End With

End Sub
'ブックを閉じたときに、右クリックのメニューを消す。
Private Sub Auto_Close()
    
CommandBars(&quot;Cell&quot;).Controls(&quot;RC_TEST(&amp;P)&quot;).Delete

End Sub

’実行するプログラム
Sub TEST()

MsgBox &quot;右クリック&quot;

End Sub

</pre></div>


<h2 class="wp-block-heading"><span id="toc2">プログラム説明</span></h2>



<h3 class="wp-block-heading"><span id="toc3">メニューの登録と削除</span></h3>



<p>上記の通り、</p>



<p>右クリックで登録するだけなら、</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
    With CommandBars(&quot;Cell&quot;).Controls.Add(Before:=1)  '1が一番上
        .Caption = &quot;RC_TEST(&amp;P)&quot; '表示名
        .OnAction = &quot;TEST&quot; 'プログラム名
    End With
</pre></div>


<p>で終わりなのですが、<br>これを実行したままにすると、なんと、メニューがそのまま残り続けます。<br>※今回の場合、　「RC_TEST(&amp;P)」　のメニューが残り続ける。</p>



<p>ですので、きちんとメニューを消すことが大事です。</p>



<p>そのプログラムが、</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
CommandBars(&quot;Cell&quot;).Controls(&quot;RC_TEST(&amp;P)&quot;).Delete
</pre></div>


<p>となっています。<br>表示名と一致しないときちんと消えないので、ご注意ください。</p>



<h3 class="wp-block-heading"><span id="toc4">Auto_Open()　Auto_Close()　との組み合わせ</span></h3>



<p>メニューを作った後に、きちんと消す必要がありますので、<br>基本的にはAuto_Open()　Auto_Close()との相性が抜群になります。</p>



<p>そのブックを立ち上げたときに、自動的にメニューが追加されますので、<br>そのブックで使えるプログラムを登録しておきましょう！！</p>



<h2 class="wp-block-heading"><span id="toc5">途中で落ちてしまった時、、</span></h2>



<p>途中でプログラムが落ちてしまった時は、</p>



<p>メニューが残ったままになってしまいます。。<br>非常に邪魔ですので、</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
'右クリックのメニューの初期化は
Application.CommandBars(&quot;Cell&quot;).Reset
</pre></div>


<p>で、初期化してあげてください。<br>右クリックに常時追加してあるメニューも消えますのでご注意ください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/add-menu-to-right-click/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【簡単】VBAとIEでページ内の商品情報(div)を順番にすべて取り出す方法</title>
		<link>https://nujonoa.com/how-to-retrieve-all-product-information/</link>
					<comments>https://nujonoa.com/how-to-retrieve-all-product-information/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Tue, 15 Sep 2020 23:00:00 +0000</pubDate>
				<category><![CDATA[IE関係]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[表示]]></category>
		<category><![CDATA[簡単]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[vba]]></category>
		<category><![CDATA[IE]]></category>
		<guid isPermaLink="false">http://nujonoa.com/?p=7314</guid>

					<description><![CDATA[目次 【簡単】VBAとIEでページ内の商品情報(div)を順番にすべて取り出す方法コードサンプル重要な要素を簡単に説明まとめ 【簡単】VBAとIEでページ内の商品情報(div)を順番にすべて取り出す方法 VBAを用いてI [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">【簡単】VBAとIEでページ内の商品情報(div)を順番にすべて取り出す方法</a></li><li><a href="#toc2" tabindex="0">コードサンプル</a></li><li><a href="#toc3" tabindex="0">重要な要素を簡単に説明</a></li><li><a href="#toc4" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">【簡単】VBAとIEでページ内の商品情報(div)を順番にすべて取り出す方法</span></h2>



<p>VBAを用いてIEを動かし、HTMLの情報を持ってくることに慣れてくると、</p>



<p>Div</p>



<p>の内容を書き出したいという要望が出てくると思います。</p>



<p>というのも、「DIV」とは、単体では特に意味を持たないタグですが、<br>&lt;div>で囲った部分をブロックレベル要素としてグループ化することができるタグになっています。</p>



<p>グループ化することで、<br>・水平方向の位置をまとめて指定したり、<br>・指定した範囲にスタイルシートを適用したりすることができる<br>ため、商品の情報などは、divタブに囲まれていることが多々あります。</p>



<p>例えば、楽天の商品ですが、下記のように、<br>div でグループ化されており、<br>class="dui-card searchresultitem"が紐づけられています。</p>



<div class="wp-block-image is-style-default"><figure class="aligncenter size-full"><img decoding="async" width="323" height="645" src="https://nujonoa.com/wp-content/uploads/2020/09/image-52.png" alt="" class="wp-image-7316" srcset="https://nujonoa.com/wp-content/uploads/2020/09/image-52.png 323w, https://nujonoa.com/wp-content/uploads/2020/09/image-52-300x599.png 300w" sizes="(max-width: 323px) 100vw, 323px" /></figure></div>



<p>ですので、商品情報を持ってきたい場合、<br>classnameが、"dui-card searchresultitem"のdivの内容順番に取り出すて行くことで、<br>表示されているページの、商品情報の一覧を得ることができます。</p>



<h2 class="wp-block-heading"><span id="toc2">コードサンプル</span></h2>



<p>コードのサンプルとして、<br>「ふるなび」のあるページの商品情報を持ってくるコードを書いてみました。</p>



<p>ふるなびの場合、"product-info"がクラスネームになっておりますので、</p>



<p>・If A.className = "product-info" Then　(product-infoだった場合、)<br>・For Each B In A.ALL　　(div内の要素を取りだし)<br>・YOUSO(i + 1, J) = B.INNERTEXT　(innertextを配列に格納)</p>



<p>最後にエクセル内に書き出すことで、商品情報一覧を書き出しています。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
Sub IEoutput2()
  
 Application.ScreenUpdating = False
   
'IEの起動
Dim objIE As Object
   
Set objIE = GetObject(&quot;&quot;, &quot;InternetExplorer.Application&quot;)
   
objIE.Visible = True
       
       
    objIE.Navigate &quot;https://furunavi.jp/Product/Search?subcategoryid=164,165,166,167,168&amp;categoryid=17&amp;order=3&amp;layout_toggle=2&amp;pagesize=100&quot;  ' このURLを任意に変更
       
    ' ページの表示完了待ち｡
    While objIE.ReadyState &lt;&gt; 4 Or objIE.Busy = True
        DoEvents
    Wend
   
    On Error Resume Next      '値がないとエラーが出るので、エラー回避用
  
    i = 1  '開始行を指定
    J = objIE.document.ALL.Length  '要素の数を知る
      
     
     Dim A As Object
     
        Application.Wait Now() + TimeValue(&quot;00:00:03&quot;)
     
       
    Dim YOUSO(10000, 0 To 14) As String
    J = 0
        
    For Each A In objIE.document.getElementsbytagname(&quot;*&quot;)
    
    If A.className = &quot;product-info&quot; Then

        For Each B In A.ALL
         YOUSO(i + 1, J) = B.INNERTEXT
         J = J + 1
         
        Next

        J = 0
        i = i + 1
           
       
    End If
                    

        
    Next
      
    Range(Cells(2, 2), Cells(i, 15)) = YOUSO
 
     Cells.WrapText = False
  
  
 Application.ScreenUpdating = True
 Application.StatusBar = False
  
   
End Sub
</pre></div>


<h2 class="wp-block-heading"><span id="toc3">重要な要素を簡単に説明</span></h2>



<p>特に難しいところはないと思いますが、特定のページを立ち上げた後、</p>



<p>まずは、</p>



<p class="is-style-secondary-box">For Each A In objIE.document.getElementsbytagname("*")</p>



<p>で、HTMLのすべての要素を検索しに行っています。</p>



<p>その中で、classnameが特定の値であった場合、分岐させて、</p>



<p class="is-style-secondary-box">For Each B In A.ALL</p>



<p>で次はdivの中身を検索しに行っています。<br>中身の情報は、<br>divごとに行を分け、<br>列方向に、情報を書き出していっています。</p>



<h2 class="wp-block-heading"><span id="toc4">まとめ</span></h2>



<p>このコードを覚えることで、<br>様々なサイトの商品情報などを簡単にまとめることができます。</p>



<p>ぜひ一度試してみてください。</p>



<p><span class="marker-animation">その他、VBAでIEを動かすために必要な情報をまとめています！！</span></p>



<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box has-border-color has-pink-border-color"><div class="tab-caption-box-label block-box-label box-label fab-book"><span class="tab-caption-box-label-text block-box-label-text box-label-text"><span class="marker-animation-2071">こちらを参照ください！</span></span></div><div class="tab-caption-box-content block-box-content box-content">
<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-together">


<a rel="noopener" target="_blank" href="https://nujonoa.com/summary-of-how-to-control-ie-with-vba/" title="【まとめ】VBAでIEを動かすプログラムまとめ！" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-right cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="160" height="90" src="https://nujonoa.com/wp-content/uploads/2019/11/coins-1015125_1280-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nujonoa.com/wp-content/uploads/2019/11/coins-1015125_1280-160x90.jpg 160w, https://nujonoa.com/wp-content/uploads/2019/11/coins-1015125_1280-120x68.jpg 120w, https://nujonoa.com/wp-content/uploads/2019/11/coins-1015125_1280-320x180.jpg 320w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【まとめ】VBAでIEを動かすプログラムまとめ！</div><div class="blogcard-snippet internal-blogcard-snippet">まだ、あまり確立されていないVBAでIEを動かすプログラムについて、素人ながらまとめてみました！【まとめ】VBAでIEを動かすプログラムまとめ！・VBA(マクロ)でIEを動かしたい！・社内プログラムでIEと連動させたい。・けれど、参考になる...</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 loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nujonoa.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nujonoa.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.10</div></div></div></div></a>

</div>



<p></p>
</div></div>
]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/how-to-retrieve-all-product-information/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>グループの階層(レベル)を確認し、ungroupメソッドが失敗しました。を防ぐ方法</title>
		<link>https://nujonoa.com/how-to-outlinelevels/</link>
					<comments>https://nujonoa.com/how-to-outlinelevels/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Mon, 14 Sep 2020 08:04:55 +0000</pubDate>
				<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[vba]]></category>
		<category><![CDATA[グループ化]]></category>
		<guid isPermaLink="false">http://nujonoa.com/?p=7290</guid>

					<description><![CDATA[グループ化されていない行や、列をungroupすると、VBAでエラーになります。 今回は、その対処法を紹介したいと思います。 グループの階層(レベル)を確認し、ungroupメソッドが失敗しました。を防ぐ方法 ungro [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>グループ化されていない行や、列をungroupすると、<br>VBAでエラーになります。</p>



<p>今回は、その対処法を紹介したいと思います。</p>



<h2 class="wp-block-heading">グループの階層(レベル)を確認し、ungroupメソッドが失敗しました。を防ぐ方法</h2>



<p class="is-style-bad-box">ungroupメソッドが失敗しました。</p>



<p>となるのは、</p>



<p class="is-style-memo-box">グループ化されていない行や列をグループ解除しようとした場合</p>



<p>となります。ですので、</p>



<p>グループ解除をするためには、グループ化されているか先に判断する必要があります。</p>



<p>そんな時に使えるのが、</p>



<p class="is-style-secondary-box">行.outlinelevel</p>



<p>となります。</p>



<p>簡単にプログラムを作って、<br>A列に、レベルを表示させるプログラムを作成してみました。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
Sub GROUP確認()

    For I = 1 To 10
        A = Cells(I, 20).EntireRow.OutlineLevel
        Cells(I, 1) = "行" & I & "のレベルは" & A
    Next

End Sub
</pre></div>


<p>結果は下記の通り、きちんとレベルが表示されていることがわかります。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="307" height="220" src="https://nujonoa.com/wp-content/uploads/2020/09/image-46.png" alt="" class="wp-image-7292" srcset="https://nujonoa.com/wp-content/uploads/2020/09/image-46.png 307w, https://nujonoa.com/wp-content/uploads/2020/09/image-46-300x215.png 300w" sizes="(max-width: 307px) 100vw, 307px" /></figure>



<p>ちなみに、グループ化されていない行がレベル１となりますので、<br>ungroupのエラーを防ぐためには、IF文を使って、</p>



<p class="is-style-secondary-box">IF 行.outlinelevel>=2 THEN<br>　行.ungroup<br>END IF</p>



<p>とする必要があります。</p>



<p>また、</p>



<p class="is-style-secondary-box">　行.clearoutline</p>



<p>を使うことで、グループ化をすべて解除することが可能ですので、<br>合わせて知っておくといいかと思います。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/how-to-outlinelevels/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【簡単】VBAで既に開いているIEの任意のサイトを表示させる方法～VBA(マクロ)でIE操作</title>
		<link>https://nujonoa.com/browse-to-an-already-open-page/</link>
					<comments>https://nujonoa.com/browse-to-an-already-open-page/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Wed, 10 Jun 2020 01:17:27 +0000</pubDate>
				<category><![CDATA[IE関係]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[簡単]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[vba]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[表示]]></category>
		<guid isPermaLink="false">http://nujonoa.com/?p=6017</guid>

					<description><![CDATA[既に開いているIEの任意のサイトを開きたいと思います。 VBAでIEを操作する方法はネットを検索しても、まだ確立されきっていないように感じますので、素人が学びながら、そこまで深堀せずに簡単に説明していきたいと思います。  [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>既に開いているIEの任意のサイトを開きたいと思います。</p>



<p>VBAでIEを操作する方法はネットを検索しても、<br>まだ確立されきっていないように感じますので、<br>素人が学びながら、そこまで深堀せずに簡単に説明していきたいと思います。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-10" checked><label class="toc-title" for="toc-checkbox-10">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">【簡単】VBAで既に開いているIEの任意のサイトを表示させる方法～VBA(マクロ)でIE操作</a></li><li><a href="#toc2" tabindex="0">重要な要素を簡単に説明</a><ol><li><a href="#toc3" tabindex="0">Set objIE = GetObject("", "InternetExplorer.Application")objIE.Visible = True</a><ol><li><a href="#toc4" tabindex="0">GetObject(pathname, class)は、</a></li><li><a href="#toc5" tabindex="0">Set ○○=▲▲　</a></li><li><a href="#toc6" tabindex="0"> objIE.Visible = True </a></li></ol></li><li><a href="#toc7" tabindex="0">objIE.Navigate "URL"</a></li><li><a href="#toc8" tabindex="0">While objIE.ReadyState &lt;&gt; 4 Or objIE.Busy = True
     DoEvents
 Wend</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">【簡単】VBAで既に開いているIEの任意のサイトを表示させる方法～VBA(マクロ)でIE操作</span></h2>



<p>VBAの入門編として、まずIEの画面を表示させる必要があります。<br>下記コードでは、既に開いているグーグルのページを開くための<br>コードを記載してみました。</p>



<p><span class="bold-red"><span class="marker-under">ダブルクリックでコピーできますのでとりあえず張り付けて実行してみてください。</span></span></p>



<p>グーグルの検索ページが開いている状態で実行すると<br>当ブログが検索されると思います。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
Sub IEdisplay2()

'IEの起動
Dim objIE As Object 'IEを格納する変数（オブジェクト型）
Dim sh As Object '起動中のShellWindow一式を格納する変数
Dim win As Object 'ShellWindowを格納する変数

Dim document_title As String 'ドキュメントタイトルの一時格納変数
'起動中のShellWindow一式を変数winsに格納
Set sh = CreateObject(&quot;Shell.Application&quot;)
'ShellWindowから1つずつ取得して処理
For Each win In sh.Windows
'ドキュメントタイトル取得失敗を無視（処理継続）
On Error Resume Next
document_title = &quot;&quot;
document_title = win.document.Title

Debug.Print document_title

On Error GoTo 0
'タイトルバーにGoogleが含まれるかチェック
If InStr(document_title, &quot;Google&quot;) &gt; 0 Then
'変数ieに取得したwinを格納
Set objIE = win
'ループを抜ける
Exit For
End If
Next


    Dim A As Object
        
    For Each A In objIE.document.getElementsByTagName(&quot;INPUT&quot;) '①FOR EACH でINPUTをすべて抜き出す。
       
        If A.Name = &quot;q&quot; Then A.Value = &quot;nujonoa_blog&quot; '②IF分で入力したい要素を見つけて　③値を代入
        
    Next
    For Each A In objIE.document.getElementsByTagName(&quot;INPUT&quot;) '①FOR EACH でINPUTをすべて抜き出す。
       
        If A.Name = &quot;btnK&quot; Then A.Click '②IF分で入力したい要素を見つけて　③Click
        
    Next
       
    On Error GoTo 0

End Sub

</pre></div>


<h2 class="wp-block-heading"><span id="toc2">重要な要素を簡単に説明</span></h2>



<p>重要な要素簡単に説明していこうと思います。</p>



<h3 class="wp-block-heading"><span id="toc3">Set objIE = GetObject("", "InternetExplorer.Application")objIE.Visible = True</span></h3>



<h4 class="wp-block-heading"><span id="toc4">GetObject(pathname, class)は、</span></h4>



<p>GetObject(pathname, class)は、<br>外部のアプリケーションにアクセスする関数になっています。<br>今回はIEに接続するので、<strong>classに”InternetExplorer.Application”</strong>を入力しています。<br>これを"Word.Application"に変えるとワードが開けるなどなど<br>microsoftのアプリケーションにアクセスするための最初の手段となっております。</p>



<h4 class="wp-block-heading"><span id="toc5">Set ○○=▲▲　</span></h4>



<p>Set ○○=▲▲　は○○を▲▲として扱うというものになり、<br>簡単な例を示すとでいうと、<br>Set C11=worksheets("sheet1").cells(1,1)とすると、<br>それ以降、C11は worksheets("sheet1").cells(1,1) の代わりになります。<br>ですので、<br>worksheets("sheet1").cells(1,1).value　は　C11.value　と非常にシンプルに置き換えることができます。<br>今回はこれ以降、objIE を GetObject("", "InternetExplorer.Application")として取り扱います。</p>



<h4 class="wp-block-heading"><span id="toc6"> objIE.Visible = True </span></h4>



<p>GetObject関数でIEは開いているのですが、<br>バックグラウンドで開いているだけになっていますので、<br>.visible＝trueとすることで、表示をさせることができます。</p>



<h3 class="wp-block-heading"><span id="toc7">objIE.Navigate "URL"</span></h3>



<p>.Navigate "URL"を用いることで、任意のURLを表示させることができます。<br>現在はサンプルサイトを表示されるようにしておりますが、<br>任意のURLに置き換えていただけたらと思います。</p>



<h3 class="wp-block-heading"><span id="toc8">While objIE.ReadyState &lt;&gt; 4 Or objIE.Busy = True
     DoEvents
 Wend</span></h3>



<p>重たいサイトなどは読み込みをしないと次の動作に移れませんので、<br>読み込みを完了するのを待つためのコードです。</p>



<p><span class="marker-animation">その他、VBAでIEを動かすために必要な情報をまとめています！！</span></p>



<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box has-border-color has-pink-border-color"><div class="tab-caption-box-label block-box-label box-label fab-book"><span class="tab-caption-box-label-text block-box-label-text box-label-text"><span class="marker-animation-2071">こちらを参照ください！</span></span></div><div class="tab-caption-box-content block-box-content box-content">
<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-together">

<a rel="noopener" target="_blank" href="https://nujonoa.com/summary-of-how-to-control-ie-with-vba/" title="【まとめ】VBAでIEを動かすプログラムまとめ！" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-right cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://nujonoa.com/wp-content/uploads/2019/11/coins-1015125_1280-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nujonoa.com/wp-content/uploads/2019/11/coins-1015125_1280-160x90.jpg 160w, https://nujonoa.com/wp-content/uploads/2019/11/coins-1015125_1280-120x68.jpg 120w, https://nujonoa.com/wp-content/uploads/2019/11/coins-1015125_1280-320x180.jpg 320w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【まとめ】VBAでIEを動かすプログラムまとめ！</div><div class="blogcard-snippet internal-blogcard-snippet">まだ、あまり確立されていないVBAでIEを動かすプログラムについて、素人ながらまとめてみました！【まとめ】VBAでIEを動かすプログラムまとめ！・VBA(マクロ)でIEを動かしたい！・社内プログラムでIEと連動させたい。・けれど、参考になる...</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 loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nujonoa.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nujonoa.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.10</div></div></div></div></a>
</div>



<p></p>
</div></div>
]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/browse-to-an-already-open-page/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【簡単】VBAでIEの全要素のデータを取得する方法(改良版)～VBA(マクロ)でIE操作</title>
		<link>https://nujonoa.com/vba-ie-output-alltag2/</link>
					<comments>https://nujonoa.com/vba-ie-output-alltag2/#comments</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Thu, 21 May 2020 05:58:21 +0000</pubDate>
				<category><![CDATA[IE関係]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[vba]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[表示]]></category>
		<category><![CDATA[簡単]]></category>
		<category><![CDATA[マクロ]]></category>
		<guid isPermaLink="false">http://nujonoa.com/?p=5569</guid>

					<description><![CDATA[要素取得のマクロの改良版です。速度が半端なく上がりました。 ↓のサイトで、IEを表示することができました。次は、HTMLの中身を確認し、任意の情報を取り出す方法を書いていこうと思います。 【簡単】VBAでIEの任意のサイ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><strong>要素取得のマクロの改良版です。<br>速度が半端なく上がりました。</strong></p>



<p>↓のサイトで、IEを表示することができました。<br>次は、HTMLの中身を確認し、任意の情報を取り出す方法を書いていこうと思います。</p>




<a rel="noopener" target="_blank" href="https://nujonoa.com/vba-ie-display/" title="【簡単】VBAでIEの任意のサイトを表示させる方法～VBA(マクロ)でIE操作" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-right cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://nujonoa.com/wp-content/uploads/2019/04/logo-e1555045643689-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nujonoa.com/wp-content/uploads/2019/04/logo-e1555045643689-160x90.jpg 160w, https://nujonoa.com/wp-content/uploads/2019/04/logo-e1555045643689-120x68.jpg 120w, https://nujonoa.com/wp-content/uploads/2019/04/logo-e1555045643689-320x180.jpg 320w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【簡単】VBAでIEの任意のサイトを表示させる方法～VBA(マクロ)でIE操作</div><div class="blogcard-snippet internal-blogcard-snippet">VBAでIEを操作する方法はネットを検索しても、まだ確立されきっていないように感じますので、素人が学びながら、そこまで深堀せずに簡単に説明していきたいと思います。VBAでIEの任意のサイトを表示させる方法VBAの入門編として、まずIEの画面...</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 loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nujonoa.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nujonoa.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.10</div></div></div></div></a>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-12" checked><label class="toc-title" for="toc-checkbox-12">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">VBAでIEの全要素のデータを取得する方法</a></li><li><a href="#toc2" tabindex="0">プログラムを簡単に説明</a><ol><li><a href="#toc3" tabindex="0">実行結果を確認する。</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">VBAでIEの全要素のデータを取得する方法</span></h2>



<p>マクロでIEを操作して行いたいことは、<br>①サイト内のデータを取得。<br>②検索ボックスなどテキストに代入。<br>③検索ボタンなどをプッシュする。<br>ことなどだと思います。この操作を行うためには、<span class="marker-under"><span class="bold-red">まずhtmlコードを読み解く必要があります。</span></span><br>下記コードは「グーグルの検索サイト」の<br>htmlコードを読み取るために、全ての要素をエクセルに書き出すコードです。<br><span class="bold-red"><span class="marker-under">ダブルクリックでコピーできますのでとりあえずVBAに張り付けて実行してみてください。</span></span></p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
Sub IEoutput2()
 
 Application.ScreenUpdating = False
  
'*****↓ここまでは以前と一緒***************************************************
'IEの起動
Dim objIE As Object
  
Set objIE = GetObject(&quot;&quot;, &quot;InternetExplorer.Application&quot;)
  
objIE.Visible = True
      
      
    objIE.Navigate &quot;https://www.google.com/?hl=ja&quot;  ' このURLを任意に変更
      
    ' ページの表示完了待ち｡
    While objIE.ReadyState &lt;&gt; 4 Or objIE.Busy = True
        DoEvents
    Wend
'*****↑ここまでは以前と一緒***************************************************
  
'****今日はここから↓***************************************************
  
    On Error Resume Next      '値がないとエラーが出るので、エラー回避用
 
    i = 1  '開始行を指定
    J = objIE.document.all.Length  '要素の数を知る
     
    Cells(i, 1).Value = &quot;uniqueID&quot;
    Cells(i, 2).Value = &quot;tagname&quot;
    Cells(i, 3).Value = &quot;Type&quot;
    Cells(i, 4).Value = &quot;NAME&quot;
    Cells(i, 5).Value = &quot;ID&quot;
    Cells(i, 6).Value = &quot;className&quot;
    Cells(i, 7).Value = &quot;TABINDEX&quot;
    Cells(i, 8).Value = &quot;Vakue&quot;
    Cells(i, 9).Value = &quot;checked&quot;
    Cells(i, 10).Value = &quot;親のtagname&quot;
    Cells(i, 11).Value = &quot;innertext&quot;
    Cells(i, 12).Value = &quot;outertext&quot;
    Cells(i, 13).Value = &quot;outherhtml&quot;
    Cells(i, 14).Value = &quot;innerhtml&quot;
     
     Dim A As Object
      
    Dim YOUSO(1000, 1 To 15) As String
    
       
    For Each A In objIE.document.getElementsbytagname(&quot;*&quot;)
      
      
 
        YOUSO(i + 1, 1) = A.uniqueID                'uniqueID
        YOUSO(i + 1, 2) = A.TAGNAME                 '親のTAG
        YOUSO(i + 1, 3) = A.Type                    'タイプ ※selectボックスは”select-one”と取得
        YOUSO(i + 1, 4) = A.Name                    '名前
        YOUSO(i + 1, 5) = A.ID                      'ID
        YOUSO(i + 1, 6) = A.className               'クラス名
        YOUSO(i + 1, 7) = A.TabIndex                'フォーカス順序 (Tabでの移動順)
        YOUSO(i + 1, 8) = A.Value                   '値
        YOUSO(i + 1, 9) = A.Checked                 'チェック状態 (True = チェック有り､false = チェック無し)
                                                    'checkboxやradioボタンから取得します
        YOUSO(i + 1, 10) = A.parentElement.TAGNAME  '親のTAG
  
  
  
        If Len(A.innerHTML) &gt; 50 Then
          
            YOUSO(i + 1, 11) = Left(A.innertext, 10) &amp; &quot;   ~~~   &quot; &amp; Right(A.innertext, 10)
            YOUSO(i + 1, 12) = Left(A.outertext, 10) &amp; &quot;   ~~~   &quot; &amp; Right(A.outerrext, 10)
            YOUSO(i + 1, 13) = Left(A.outerHTML, 10) &amp; &quot;   ~~~   &quot; &amp; Right(A.outerHTML, 10)
            YOUSO(i + 1, 14) = Left(A.innerHTML, 10) &amp; &quot;   ~~~   &quot; &amp; Right(A.innerHTML, 10)
  
        Else
          
            YOUSO(i + 1, 11) = A.innertext
            YOUSO(i + 1, 12) = A.outertext
            YOUSO(i + 1, 13) = A.outerHTML
            YOUSO(i + 1, 14) = A.innerHTML
                      
        End If
          
        Dim C(20) As String
 
        '階層を表示
        For Z = 1 To 20
            C(Z) = A.TAGNAME
            If A.TAGNAME = &quot;HTML&quot; Then Exit For
            Set A = A.parentElement
        Next
 
        For L = Z To 1 Step -1
            Cells(i + 1, 30 + Z - L) = C(L)
        Next
          
          
        i = i + 1
          
        'ステータスバーに進捗を表示
        Application.StatusBar = i &amp; &quot;/&quot; &amp; J
       
    Next
     
    Range(Cells(2, 1), Cells(i, 14)) = YOUSO 

     Cells.WrapText = False
 
 
 Application.ScreenUpdating = True
 Application.StatusBar = False
 
'表示を固定
Columns(1, 9).AutoFit
Cells(1, 2).EntireColumn.Interior.ColorIndex = 6
Cells(2, 3).Select
ActiveWindow.FreezePanes = True
objIE.document.getElementsByName(&quot;q&quot;)(0).Value = &quot;テスト&quot;
  
End Sub


</pre></div>


<h2 class="wp-block-heading"><span id="toc2">プログラムを簡単に説明</span></h2>



<p>少々長くなりましたが、やっていることは簡単で、サイトを表示させた後、<br><span class="bold-blue">For Each A In objIE.document.getElementsByTagName("*")　～～～　Next</span><br>で全要素を検索し、要素内の属性やデータを抜き出して、エクセルに張り付けていっています。<br> <strong><span class="bold-blue">.document.getElementsByTagName("○○")</span></strong> でTagNameが○○のものを取り出せるのですが、<br>＊を使うことで、ワイルドカードとして全種類検索することを可能としています。</p>



<h3 class="wp-block-heading"><span id="toc3">実行結果を確認する。</span></h3>



<p>実行すると、下記のようなデータがエクセルに書き出されたと思います。<br>抜き出す属性やデータとしては、</p>



<p>①uniqueID    ②tagname ③Type    ④NAME   ⑤ID  ⑥className   ⑦TABINDEX    ⑧Vakue   ⑨checked ⑩親の⑪tagname   ⑫innertext   ⑬outertext   ⑭outherhtml  ⑮innerhtml</p>



<p>を取り出してみました！<br>基本的に、VBAでIEを操作するときには、<br>②のTagNameを使って要素を取り出し、④⑤⑧などのデータを用いて要素を特定。<br>その後「.Click」などを使ってIEを操作していきます。</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="900" height="333" src="https://nujonoa.com/wp-content/uploads/2019/05/image-40-900x333.png" alt="" class="wp-image-817" srcset="https://nujonoa.com/wp-content/uploads/2019/05/image-40-900x333.png 900w, https://nujonoa.com/wp-content/uploads/2019/05/image-40-300x111.png 300w, https://nujonoa.com/wp-content/uploads/2019/05/image-40-500x185.png 500w, https://nujonoa.com/wp-content/uploads/2019/05/image-40-768x284.png 768w, https://nujonoa.com/wp-content/uploads/2019/05/image-40.png 1362w" sizes="(max-width: 900px) 100vw, 900px" /></figure>



<p>ちなみにこのプログラムでは最後に、google検索欄に「テスト」と入力するために下記コードを入れておきました。<br><span class="bold-blue">objIE.document.getElementsByName("q")(0).Value = "テスト”。<br></span> 次からはこのように抜き出した要素を使って、IEを操作していきたいと思います！  </p>



<p>P.S.<br>document.getElementByなどなどvbaではあまり見ない関数だなと思っていたら、<br>javasprictからきているようですね。まだまだ奥が深いようです…<br></p>




<a rel="noopener" target="_blank" href="http://yasumoha.com/blog/javascript%E3%81%82%E3%82%89%E3%82%86%E3%82%8B%E8%A6%81%E7%B4%A0%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B/" title="[JavaScript] あらゆる要素を取得する" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-right cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://yasumoha.com/blog/wp-content/uploads/study.jpeg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">[JavaScript] あらゆる要素を取得する</div><div class="blogcard-snippet external-blogcard-snippet">最近JavaScriptの勉強をしている@yasumohaです。始めたばかりなのでまだまだ基本ができていません。そんな訳で、今回はDOM要素を取得するメソッドをまとめてみたいと思います。IDを指定して取得するdocument.getElem</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://yasumoha.com/blog/javascript%e3%81%82%e3%82%89%e3%82%86%e3%82%8b%e8%a6%81%e7%b4%a0%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">yasumoha.com</div></div></div></div></a>



<p><span class="marker-animation">その他、VBAでIEを動かすために必要な情報をまとめています！！</span></p>



<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box has-border-color has-pink-border-color"><div class="tab-caption-box-label block-box-label box-label fab-book"><span class="tab-caption-box-label-text block-box-label-text box-label-text"><span class="marker-animation-2071">こちらを参照ください！</span></span></div><div class="tab-caption-box-content block-box-content box-content">
<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-together">


<a rel="noopener" target="_blank" href="https://nujonoa.com/summary-of-how-to-control-ie-with-vba/" title="【まとめ】VBAでIEを動かすプログラムまとめ！" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-right cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://nujonoa.com/wp-content/uploads/2019/11/coins-1015125_1280-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nujonoa.com/wp-content/uploads/2019/11/coins-1015125_1280-160x90.jpg 160w, https://nujonoa.com/wp-content/uploads/2019/11/coins-1015125_1280-120x68.jpg 120w, https://nujonoa.com/wp-content/uploads/2019/11/coins-1015125_1280-320x180.jpg 320w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【まとめ】VBAでIEを動かすプログラムまとめ！</div><div class="blogcard-snippet internal-blogcard-snippet">まだ、あまり確立されていないVBAでIEを動かすプログラムについて、素人ながらまとめてみました！【まとめ】VBAでIEを動かすプログラムまとめ！・VBA(マクロ)でIEを動かしたい！・社内プログラムでIEと連動させたい。・けれど、参考になる...</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 loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nujonoa.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nujonoa.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.10</div></div></div></div></a>

</div>



<p></p>
</div></div>
]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/vba-ie-output-alltag2/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのVBA＝Google Apps Scriptの使い方入門！</title>
		<link>https://nujonoa.com/introduction-to-gas-and-sample-code/</link>
					<comments>https://nujonoa.com/introduction-to-gas-and-sample-code/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Mon, 03 Feb 2020 11:00:00 +0000</pubDate>
				<category><![CDATA[gmail]]></category>
		<category><![CDATA[GAS]]></category>
		<category><![CDATA[google spreadsheet]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[vba]]></category>
		<category><![CDATA[サンプル]]></category>
		<category><![CDATA[Google Apps Script]]></category>
		<guid isPermaLink="false">http://nujonoa.com/?p=4067</guid>

					<description><![CDATA[エクセルでマクロを組んで業務改善を行っている人は多いかと思いますが、・共有がしづらい、・変更履歴が追えないなどなどの不満点も多々あるかと思います。 そこで、今回は、スプレッドシートを使うことでできること、サンプルコード一 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p> エクセルでマクロを組んで業務改善を行っている人は多いかと思いますが、<br>・共有がしづらい、<br>・変更履歴が追えない<br>などなどの不満点も多々あるかと思います。 </p>



<p>そこで、今回は、スプレッドシートを使うことでできること、<br>サンプルコード一覧を紹介していきたいと思います。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-14" checked><label class="toc-title" for="toc-checkbox-14">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートのマクロ＝Google Apps Scriptの使い方入門！</a></li><li><a href="#toc2" tabindex="0">使い方</a></li><li><a href="#toc3" tabindex="0">GAS(Google Apps Script)で、できること</a></li><li><a href="#toc4" tabindex="0">サンプルコード一覧！</a><ol><li><a href="#toc5" tabindex="0">セル関係</a><ol><li><a href="#toc6" tabindex="0">セルに値を入力する。</a></li><li><a href="#toc7" tabindex="0">セルの値を取得する。</a></li><li><a href="#toc8" tabindex="0">セル内で計算させる</a></li><li><a href="#toc9" tabindex="0">セルに数式を入れる。</a></li><li><a href="#toc10" tabindex="0">最終行、最終列の取得</a></li><li><a href="#toc11" tabindex="0">セルのコピーペースト</a></li><li><a href="#toc12" tabindex="0">セルのメモ機能</a></li><li><a href="#toc13" tabindex="0">セルの並び替え</a></li><li><a href="#toc14" tabindex="0">入力規則の設定</a></li></ol></li><li><a href="#toc15" tabindex="0">行列の操作</a><ol><li><a href="#toc16" tabindex="0">行列の挿入・削除</a></li><li><a href="#toc17" tabindex="0">行列の幅調整</a></li></ol></li><li><a href="#toc18" tabindex="0">FOR文・IF文</a><ol><li><a href="#toc19" tabindex="0">FOR文(繰り返し)</a></li><li><a href="#toc20" tabindex="0">IF文(条件)</a></li></ol></li><li><a href="#toc21" tabindex="0">ブック、シートの取り扱い</a><ol><li><a href="#toc22" tabindex="0">シート間の移動</a></li><li><a href="#toc23" tabindex="0">他のブックの参照</a></li><li><a href="#toc24" tabindex="0">新規シートの作成</a></li></ol></li><li><a href="#toc25" tabindex="0">見やすさなどなど</a><ol><li><a href="#toc26" tabindex="0">フォントの設定</a></li><li><a href="#toc27" tabindex="0">背景色の設定</a></li><li><a href="#toc28" tabindex="0">罫線を追加する</a></li><li><a href="#toc29" tabindex="0">表示スクロールの固定</a></li><li><a href="#toc30" tabindex="0">進捗状況の表示(ステータスバーの代わり)</a></li><li><a href="#toc31" tabindex="0">スプレッドシートにマクロ登録</a></li></ol></li><li><a href="#toc32" tabindex="0">グーグル独自の機能</a><ol><li><a href="#toc33" tabindex="0">メールの送信</a></li></ol></li></ol></li><li><a href="#toc34" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのマクロ＝Google Apps Scriptの使い方入門！</span></h2>



<p>エクセルも共有などなどができるようになっていますが、<br>やはり、個々の作業が向いているのが現状です。</p>



<p>それに対して、グーグルのスプレッドシートは、<br>動作が遅いなどなどありますが、<br>・リアルタイムに変更が反映される。<br>・グーグルカレンダー、グーグルメールとの連動が簡単<br>というメリットがありますので、進捗管理などに非常に向いています。</p>



<p>そこで、今回は、<br>グーグルのスプレッドシートでのVBA＝GAS(Google Apps Script)について<br>・使い方<br>・できることと<br>・サンプルコード<br>をまとめていこうと思います。</p>



<h2 class="wp-block-heading"><span id="toc2">使い方</span></h2>



<p>GAS(Google Apps Script)はインストールなどは不要となっており、</p>



<p>スプレッドシートを立ち上げて、<br>①ツールを選択<br>②スクリプトエディタを選択</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="432" height="268" src="https://nujonoa.com/wp-content/uploads/2020/02/image-73.png" alt="" class="wp-image-4177" srcset="https://nujonoa.com/wp-content/uploads/2020/02/image-73.png 432w, https://nujonoa.com/wp-content/uploads/2020/02/image-73-300x186.png 300w" sizes="(max-width: 432px) 100vw, 432px" /></figure>



<p>すると、下のような画面が、新たなウインドで表示されますので、<br>この中にマクロと同様、コードを打っていけばいいことになります。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="285" height="129" src="https://nujonoa.com/wp-content/uploads/2020/02/image-74.png" alt="" class="wp-image-4178"/></figure>



<p>コードが完成したら、保存をし、実行するコードを保存。<br>&#x25b6;ボタンで実行します。</p>



<figure class="wp-block-image size-medium"><img loading="lazy" decoding="async" width="500" height="318" src="https://nujonoa.com/wp-content/uploads/2020/02/image-77-500x318.png" alt="" class="wp-image-4181" srcset="https://nujonoa.com/wp-content/uploads/2020/02/image-77-500x318.png 500w, https://nujonoa.com/wp-content/uploads/2020/02/image-77-300x191.png 300w, https://nujonoa.com/wp-content/uploads/2020/02/image-77.png 740w" sizes="(max-width: 500px) 100vw, 500px" /></figure>



<p>エクセルのVBAとコードが違うことを除き、ほぼ同じ動作を行えばいいことがわかります。</p>



<h2 class="wp-block-heading"><span id="toc3">GAS(Google Apps Script)で、できること</span></h2>



<p>GAS(Google Apps Script)でできることは、<br>セルの値の入力、計算、罫線の作成、などなど、<br>基本的にエクセルのVBAと同様と考えていただいて構いません(※)。</p>



<p>それに加えて、Googleのサービスとの連携ができます。</p>



<p>例えば、</p>



<p>・gmailの送信を用いて期限が過ぎた予定をフォローする機能<br>・googleカレンダーにスプレッドシートの予定を自動で登録<br>・google翻訳を用いて、スプレッドシート上で日本語→英語に翻訳<br>・トリガーを用いて、毎日自動でプログラムを実行させる。</p>



<p>などなど、Googleを主に使っている人・会社にとって、<br>業務効率化につながることになると思います。</p>



<p>特に5Gの時代が来ると、クラウド上の共有フォルダを用いることが<br>当たり前になってくると思いますし、<br>コードも簡単かつ、選択肢から希望の操作を選択することで<br>簡単に作成することができますので、覚えておいて損はないと思います。</p>



<p> ※現状では、ブラウザ上で通信しながら行いますので、<br>複雑な処理など時間がかかるものに関しては、向いていないのが現状です。</p>



<p>それでは、簡単にサンプルコードの紹介をしていこうと思います。 </p>



<h2 class="wp-block-heading"><span id="toc4">サンプルコード一覧！</span></h2>



<p>とりあえずサンプルコード一覧を作ってみました。<br>ctrl+Fで検索して使ってみてください！ </p>



<p>基本的な動作は網羅していると思います。</p>



<h3 class="wp-block-heading"><span id="toc5">セル関係</span></h3>



<p>まずは簡単に、セルの値の操作など、<br>基本的な操作のサンプルコードです。</p>



<h4 class="wp-block-heading"><span id="toc6">セルに値を入力する。</span></h4>



<p>セルの選択は、</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
SpreadsheetApp.getActiveSheet().getRange(&quot;行&quot;,&quot;列&quot;)
</pre></div>


<p>セルの値の入力は、</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
.setValue(&quot;○○○&quot;) 
</pre></div>


<p>で行います。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
function code1(){
  
  /*セルに文字を入れる*/

  /*getActiveSheet→シートを選択*/
  /*getRange→セル（Rangeオブジェクト）を選択 */
  /*setValue→セルに値。 */
  SpreadsheetApp.getActiveSheet().getRange(1, 1).setValue(&quot;Hallo world&quot;);
  SpreadsheetApp.getActiveSheet().getRange(2, 1).setValue(&quot;=A$1&quot;);

  /*長いのはめんどくさいので、変数にする*/
  /*VBAでいうDIMがVar*/
    
  var sheet = SpreadsheetApp.getActiveSheet()
  sheet.getRange(3, 1).setValue(&quot;HAPPY&quot;)
 
}
</pre></div>


<h4 class="wp-block-heading"><span id="toc7">セルの値を取得する。</span></h4>



<p>セルの値の取得は、</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
.getValue()
</pre></div>


<p>で行います。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: java; title: ; notranslate">
function code2_1(){
  
  /*単純な四則演算*/
  
   var sheet = SpreadsheetApp.getActiveSheet()

  /*変数に入力*/
  var TANKA,KOSU
  sheet.getRange(2, 2).setValue(1)  
  TANKA=sheet.getRange(2, 2).getValue()
  
  Browser.msgBox(TANKA)
  
}
</pre></div>


<h4 class="wp-block-heading"><span id="toc8">セル内で計算させる</span></h4>



<p>セル内の計算は、上記二つのコードを用いて行うことができます。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: java; title: ; notranslate">
function code2_2(){
  
  /*単純な四則演算*/
  
   var sheet = SpreadsheetApp.getActiveSheet()

  sheet.getRange(1, 2).setValue(1)  
  sheet.getRange(1, 3).setValue(2)
  sheet.getRange(1, 4).setValue(sheet.getRange(1, 2).getValue()*sheet.getRange(1, 3).getValue())
  
  /*変数に入力*/
  var TANKA,KOSU
  sheet.getRange(2, 2).setValue(1)  
  sheet.getRange(2, 3).setValue(2)
  TANKA=sheet.getRange(2, 2).getValue()
  KOSU=sheet.getRange(2, 3).getValue()
  
  sheet.getRange(2, 4).setValue(TANKA * KOSU)
  
}

</pre></div>


<h4 class="wp-block-heading"><span id="toc9">セルに数式を入れる。</span></h4>



<p>セル内に数式を入れる場合は、</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
.setFormula(&quot;=A&quot; + 3 + &quot;*B&quot; + 3)
</pre></div>


<p>でおこなうことができ、文字と変数を組み合わせたい場合、<br>エクセルVBAでは　"文字" &amp; 変数 　と間に「&amp;」を用いましたが、<br>GASでは　”文字” + 変数　と間に「＋」を用います。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: java; title: ; notranslate">
function code3(){
  
    var sheet = SpreadsheetApp.getActiveSheet()
    
    sheet.getRange(2, 1).setValue(1)
    sheet.getRange(2, 2).setValue(5)
    sheet.getRange(3, 1).setValue(3)
    sheet.getRange(3, 2).setValue(5)

    sheet.getRange(2,4).setValue(&quot;=A2*B2&quot;)
    /*　「&amp;」の代わりは「＋」　*/
    sheet.getRange(3,4).setFormula(&quot;=A&quot; + 3 + &quot;*B&quot; + 3)
  
}
</pre></div>


<h4 class="wp-block-heading"><span id="toc10">最終行、最終列の取得</span></h4>



<p>計算でよく使用する、最終行、最終列の取得は、</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
.getLastRow() //最終行
.getLastColumn() //最終列
</pre></div>


<p>で行います。<br>また、スプレッドシートの場合、新規で立ち上げた場合、<br>使える最終行が1000行、最終列がA~Z(26列)となっており、<br>その数を検索する場合、</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
.getMaxRows()
.getMaxColumns()
</pre></div>


<p>を用います。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: java; title: ; notranslate">
function code4(){
  
  /*最終行*/
  
  var sheet=SpreadsheetApp.getActiveSheet()
  
  　//セルに存在する最後の行
    lastY = sheet.getLastRow()
    lastX = sheet.getLastColumn()
   
 　var lastY = sheet.getRange(sheet.getMaxRows(), 1).getNextDataCell(SpreadsheetApp.Direction.UP).getRow();
    var lastX = sheet.getRange(1, sheet.getMaxColumns()).getNextDataCell(SpreadsheetApp.Direction.PREVIOUS).getColumn();


 
    //ｼｰﾄに存在する最後の行(エクセルのように最初から1048576行は無い)
    lastY2 = sheet.getMaxRows()
    lastX2 = sheet.getMaxColumns()
   
}
</pre></div>


<h4 class="wp-block-heading"><span id="toc11">セルのコピーペースト</span></h4>



<p>セルのコピーペーストは、</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
copyTo(&quot;シートの場所&quot;,&quot;条件&quot;)
</pre></div>


<p>を用います。ペーストする際に、エクセル同様、<br>値の貼り付け、書式の貼り付け等を選択することも可能です。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: java; title: ; notranslate">
function code11(){

  //セルのコピー　ペースト
  var book=SpreadsheetApp.getActiveSpreadsheet()
  var sheet=book.getActiveSheet()
  sheet.getRange(2, 1).setValue(200)
  sheet.getRange(3, 1).setValue(&quot;=A2*1+5&quot;)
  
  sheet.getRange(3, 1).copyTo(sheet.getRange(3,10,10,10),SpreadsheetApp.CopyPasteType.PASTE_FORMULA)

  /*
PASTE_NORMAL Enum 値、数式、書式、および結合を貼り付けます。 
PASTE_NO_BORDERS Enum 値、数式、書式、および結合を貼り付けますが、枠線は付けません。 
PASTE_FORMAT Enum フォーマットとデータ検証のみを貼り付けます。 
PASTE_FORMULA Enum 数式のみを貼り付けます。 
PASTE_DATA_VALIDATION Enum データ検証のみを貼り付けます。 
PASTE_VALUES Enum フォーマット、数式、または結合せずに値のみを貼り付けます。 
PASTE_CONDITIONAL_FORMATTING Enum カラールールのみを貼り付けます。 
PASTE_COLUMN_WIDTHS Enum 列幅だけを貼り付けます。 
 */

  sheet.getRange(3, 10,10,10).activate()
  
}
</pre></div>


<h4 class="wp-block-heading"><span id="toc12">セルのメモ機能</span></h4>



<p>セルにメモを追加する場合は、</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
.setNote('ここに入力してください。\n');
</pre></div>


<p>を使用します。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: java; title: ; notranslate">
function code12(){
 
  /*メモ機能*/
  var spreadsheet = SpreadsheetApp.getActive();
  
    spreadsheet.getRange('E20').setNote('ここに入力してください。\n');
   
}
</pre></div>


<h4 class="wp-block-heading"><span id="toc13">セルの並び替え</span></h4>



<p>並び替えは、</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
.sort({column:5,ascending:false})
</pre></div>


<p>を使い、並び替えの条件(キー列、昇順か降順か)を入力してソートします。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: java; title: ; notranslate">
function code13(){
  
  /*並び替え*/
  
  var sheet = SpreadsheetApp.getActiveSheet();
  
  for(var i=1;i&lt;=10;i++){
   sheet.getRange(5+i, 5).setValue(i) 
  }
  
  var lastY = sheet.getLastRow()
  var lastX = sheet.getLastColumn()
  sheet.getRange(6, 5, lastY-6).activate

  
  sheet.getRange(6, 5, lastY-6+1).sort({column:5,ascending:false})
//  sheet.getRange(6, 5, lastY, lastX)).sort(&#x5B;{column: 1, ascending: true},{column: 2, ascending: false}])


}
</pre></div>


<h4 class="wp-block-heading"><span id="toc14">入力規則の設定</span></h4>



<p>入力規則の設定は、 ルールを設定し、 </p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
  var rule1=SpreadsheetApp.newDataValidation().setAllowInvalid(true)
  .requireValueInRange(spreadsheet.getRange('シート1!$J$3:$J$12'), true)
  .build();
</pre></div>

<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
 .setDataValidation(rule1)
</pre></div>


<p>を用いて設定します。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: java; title: ; notranslate">
function code14(){
  
  
  //入力規則　G8に、AONOA!$J$3:$J$12の入力規則を設定
  var spreadsheet = SpreadsheetApp.getActive();
   spreadsheet.getRange('G8').setDataValidation(SpreadsheetApp.newDataValidation()
  .setAllowInvalid(true)
  .requireValueInRange(spreadsheet.getRange('シート1!$J$3:$J$12'), true)
  .build());

  
  //ルールを設定して、そのあとに、setでも設定可能。
  var rule1=SpreadsheetApp.newDataValidation().setAllowInvalid(true)
  .requireValueInRange(spreadsheet.getRange('シート1!$J$3:$J$12'), true)
  .build();

  spreadsheet.getRange('I8').setDataValidation(rule1)
  spreadsheet.getRange('G8').clearDataValidations()
 
}
</pre></div>


<h3 class="wp-block-heading"><span id="toc15">行列の操作</span></h3>



<p>行列の操作方法です。</p>



<h4 class="wp-block-heading"><span id="toc16">行列の挿入・削除</span></h4>



<p>行列の挿入・削除は、</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
.insertColumnsAfter(afterPosition, howMany)
.deleteColumns(columnPosition, howMany)
</pre></div>


<p>で行うことができます。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: java; title: ; notranslate">
function code_spread19(){
  
  //行列
  var sheet=SpreadsheetApp.getActiveSheet()
  
  var afterPosition=5
  var howMany=2
  sheet.insertColumnsAfter(afterPosition, howMany)
  sheet.insertRowsAfter(afterPosition, howMany)
  var columnPosition=5  
  var rowPosition=5
  var howMany=2
  sheet.deleteColumns(columnPosition, howMany)//afterいらいない
  sheet.deleteRows(rowPosition, howMany)//afterいらない;

  
}
</pre></div>


<h4 class="wp-block-heading"><span id="toc17">行列の幅調整</span></h4>



<p>行列の幅の調整は</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
.setRowHeights(startRow, numRows, height)
</pre></div>


<p>で行います。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: java; title: ; notranslate">
function code_spread19(){
  
  //行列
  var sheet=SpreadsheetApp.getActiveSheet()
  sheet.getRange(2, 1).setValue(200) 

  //行列幅自動調整
  sheet.autoResizeColumns(2, 3);
  sheet.autoResizeRows(2, 3);  
  
  //sheet.setRowHeights(startRow, numRows, height)

}
</pre></div>


<h3 class="wp-block-heading"><span id="toc18">FOR文・IF文</span></h3>



<p>for文、if文になります。<br>JAVAスクリプトベースの書き方になります。</p>



<h4 class="wp-block-heading"><span id="toc19">FOR文(繰り返し)</span></h4>



<p>繰り返し作業は、</p>



<p>10以下、+1ずつカウントアップの場合、</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
 for(var i=1;i&lt;=10;i++){     
  /*繰り返し部*/
}
</pre></div>


<p>となります。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: java; title: ; notranslate">
function code6(){
 
  var  sheet=SpreadsheetApp.getActiveSheet()
  
  for(var i=1;i&lt;=10;i++){     
  sheet.getRange(1+i, 6).setValue(i*2)
}

  sheet.getRange(7, 6).clear()

}
</pre></div>


<h4 class="wp-block-heading"><span id="toc20">IF文(条件)</span></h4>



<p>IF文は、</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
 if(sheet.getRange(11, 1).getValue()&gt;2){
   /*コード*/
  }  
</pre></div>


<p>のコードで実装できます。<br>≠は!=で表すなどは、下記サンプルコードコメント部を参照ください。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: java; title: ; notranslate">
function code5(){
  
  //if文
  
  var sheet=SpreadsheetApp.getActiveSheet()
  
  sheet.getRange(10, 1).setValue(1)  
  sheet.getRange(11, 1).setValue(2)
  
  if(sheet.getRange(10, 1).getValue()==1){
    
    sheet.getRange(10, 2).setValue(&quot;〇&quot;)
  }  
  else{  
      sheet.getRange(10,2).setValue(&quot;×&quot;)
  }
  if(sheet.getRange(11, 1).getValue()&gt;2){
    
    sheet.getRange(11, 2).setValue(&quot;〇&quot;)
  }  
  else{  
      sheet.getRange(11,2).setValue(&quot;×&quot;)
  }  
  
  /*
==	等しい	被演算子が等しい場合に true を返します。
!=	等しくない	被演算子が等しくない場合に true を返します。
===	厳密に等しい	被演算子が等しく、かつ同じ型である場合に true を返します。
!==	厳密に等しくない	被演算子が等しくなく、かつ/または同じ型でない場合に true を返します。
&gt;	より大きい	左の被演算子が右の被演算子よりも大きい場合に true を返します。
&gt;=	以上	左の被演算子が右の被演算子以上である場合に true を返します。
&lt;	より小さい	左の被演算子が右の被演算子よりも小さい場合に true を返します。
&lt;=	以下	左の被演算子が右の被演算子以下である場合に true を返します。
 */  
  
  /*
&amp;&amp;	expr1 &amp;&amp; expr2	論理積 (AND)
||	expr1 || expr2	論理和 (OR)
!	!expr	論理否定 (NOT)
 */  
}
</pre></div>


<h3 class="wp-block-heading"><span id="toc21">ブック、シートの取り扱い</span></h3>



<p>ブック、シートの取り扱いは少しだけとっつきにくいかもしれません。</p>



<h4 class="wp-block-heading"><span id="toc22">シート間の移動</span></h4>



<p>エクセルと同様、シートの移動などにも対応します。<br>少々とっつきにくいのは、まず何かの変数に情報を先に入れておくことでしょうか？</p>



<p>シート名で指定する方法、シートの数で指定する方法などなどがあるようです。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: java; title: ; notranslate">
function code8(){
  
  /*シート間の移動*/
  
  var book=SpreadsheetApp.getActiveSpreadsheet()
  var sheet2=book.getSheetByName(&quot;シート5&quot;).activate()
  
  Browser.msgBox(book.getActiveSheet().getSheetName(), Browser.Buttons.OK)
  
  /*数でとる*/
  
  var sheet3=book.getSheets()&#x5B;2].activate()
  Browser.msgBox(book.getActiveSheet().getSheetName(), Browser.Buttons.OK)
 
  /*sheetをすべて検索して表示*/
  
  var sheets=book.getSheets()
  for (i = 0; i &lt; book.getSheets().length; i++) {
    sheets&#x5B;i].getRange(1, 1).setValue(sheets&#x5B;i].getName())
    Browser.msgBox(sheets&#x5B;i].getName(), Browser.Buttons.OK)
  } 
}
</pre></div>


<h4 class="wp-block-heading"><span id="toc23">他のブックの参照</span></h4>



<p>他のブックの参照は、<br>ブックごとに定められた「ID」を用いて行います。<br>名前の指定もできますが、ドライブの指定などなどありますので、<br>IDの指定が一番だと思います。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: java; title: ; notranslate">
function code9(){
 
  //他のブックの参照
  
  /*importrangeで他のものを参照できる*/
  var book1 =SpreadsheetApp.getActiveSpreadsheet()
  var book2=SpreadsheetApp.openById(&quot;IDをいれる&quot;)//IDを入れる
  var book2=SpreadsheetApp.openByName(&quot;名前&quot;)//IDを入れる
  
  //これでどちらも開いて、book1などでACTIVATEできる
  
}
</pre></div>


<h4 class="wp-block-heading"><span id="toc24">新規シートの作成</span></h4>



<p>参考までに、シートを作成するときに、<br>重複エラーが出ないようコードを作成してみました。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: java; title: ; notranslate">
function code10(){
  
  /*重複しないようにシートを作成*/
 
  var newsheetname=&quot;新規ｼｰﾄ&quot;
  
  var book =SpreadsheetApp.getActiveSpreadsheet()
  var sheet =SpreadsheetApp.getActiveSheet()
  var flag=0

  
  var sheets=book.getSheets()
  for (i = 0; i &lt; book.getSheets().length; i++) {
    if(sheets&#x5B;i].getName()==newsheetname){
      flag=1
      
    }
  }
    
    if(flag==0){
      book.insertSheet(newsheetname)
    }else{
    var HANTEI=Browser.msgBox(newsheetname + &quot;が存在します。置き換えますか&quot;, Browser.Buttons.YES_NO)
    if(HANTEI == &quot;yes&quot;){
      book.deleteSheet(book.getSheetByName(newsheetname))
      book.insertSheet(newsheetname)
    }
  }
</pre></div>


<h3 class="wp-block-heading"><span id="toc25">見やすさなどなど</span></h3>



<p>セルの色の変更や背景色の変更などなどです。<br>罫線などの設定も簡単にできます。</p>



<h4 class="wp-block-heading"><span id="toc26">フォントの設定</span></h4>



<p>フォントの設定は、下記の通り、setFont○○を用いて行います。<br>太文字、色の変更、などなどをおこなうことができます。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: java; title: ; notranslate">
function code_spread18(){
  
  var sheet=SpreadsheetApp.getActiveSheet()
  //
  sheet.getRange(1,1,10,10).setValue(1)
  sheet.getRange(1,1,1,10).setFontWeight(&quot;bold&quot;)//
  sheet.getRange(1,1,1,10).setFontColor(&quot;red&quot;)//red（赤）になります。blue（青）、green（緑）、yellow（黄）,setFontColor(“#F99273”) 


}
</pre></div>


<h4 class="wp-block-heading"><span id="toc27">背景色の設定</span></h4>



<p>背景色の設定は、.setBackground("")です。<br>RGBでも指定できますし、HTMLカラーコードでも設定可能です。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: java; title: ; notranslate">
function code_spread18(){
  
  var sheet=SpreadsheetApp.getActiveSheet()
  //
  sheet.getRange(1,1,10,10).setValue(1)
  sheet.getRange(1,1,1,10).setBackground(&quot;blue&quot;)//red（赤）になります。blue（青）、green（緑）、yellow（黄）,setFontColor(“#F99273”) 
  //setBackgroundRGB(0, 0, 255);も可

}
</pre></div>


<h4 class="wp-block-heading"><span id="toc28">罫線を追加する</span></h4>



<p>罫線の追加は、</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
  sheet.getRange(2, 6,lastY,7).setBorder(true, null, null, true, null, null)
//  sheet.getRange(row, column).setBorder(top, left, bottom, right, vertical, horizontal, color, style)
</pre></div>


<p>で、行います。一気に設定できるので楽ですね。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: java; title: ; notranslate">
function code7(){
 
  var  sheet=SpreadsheetApp.getActiveSheet()
  
  for(var i=1;i&lt;=10;i++){     
  sheet.getRange(1+i, 6).setValue(i*2)
  sheet.getRange(1+i, 7).setValue(i*3)
}

  var lastY=sheet.getLastRow()

  sheet.getRange(2, 6,lastY,7).setBorder(true, null, null, true, null, null)
//  sheet.getRange(row, column).setBorder(top, left, bottom, right, vertical, horizontal, color, style)
  
}
</pre></div>


<h4 class="wp-block-heading"><span id="toc29">表示スクロールの固定</span></h4>



<p>スクロールの固定は、</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
 .setFrozenRows(2)
 .setFrozenColumns(3)
</pre></div>


<p>です。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: java; title: ; notranslate">
function code15(){
  
  //表示のスクロールの固定
  
  var sheet=SpreadsheetApp.getActiveSheet()
  
  sheet.setFrozenRows(2)
  sheet.setFrozenColumns(3)
 
}
</pre></div>


<h4 class="wp-block-heading"><span id="toc30">進捗状況の表示(ステータスバーの代わり)</span></h4>



<p>進捗状況の表示は、エクセルではステータスバーが使えましたが、<br>グーグルスプレッドシートでは、トーストを使うようです。<br>ステータスバーほど、リアルタイムに反映できませんが、<br>どの処理を行っているかの確認はできると思います。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: java; title: ; notranslate">
function code17(){
  
  //進捗状況を確認
  //トースト

  //getActiveなことに注意
  var sheet=SpreadsheetApp.getActive()

  var msg=&quot;メッセージを入力&quot;
  var title=&quot;タイトルを入力&quot;
  var timeoutSeconds=5//秒数を入力、-1は×ボタンが押されるまで。
  
  sheet.toast(msg, title, timeoutSeconds)
  
  for(var i=1;i&lt;=100000;i++){
   
    if(i%10000==0){sheet.toast(i,i+&quot;/10000&quot;,1)}
      
  }
      
  sheet.toast(&quot;&quot;,&quot;終了&quot;,1)

}
</pre></div>


<h4 class="wp-block-heading"><span id="toc31">スプレッドシートにマクロ登録</span></h4>



<p>ショートカットにマクロの登録をすることができます。</p>



<p>いちいちスクリプトを立ち上げなくてもよくなりますので、便利になると思います。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: java; title: ; notranslate">
function code_spread20() {
  
  //onOpenでつかうと有用
  //function onOpen() {
  //スプレッドシートにスクリプト登録
  var book=SpreadsheetApp.getActiveSpreadsheet()
  var sheet=SpreadsheetApp.getActiveSheet()
  
  SpreadsheetApp.getUi()
  .createMenu('登録')//ボタン名
  .addItem('自動化1', 'code_spread19')//表示名と、プログラム
  .addToUi();
  
  //removeMenuで消せる。
  
  book.removeMenu(&quot;登録&quot;)
  
}
</pre></div>


<h3 class="wp-block-heading"><span id="toc32">グーグル独自の機能</span></h3>



<p>グーグルスプレッドシートだからこその機能です。<br>Gmail、グーグルカレンダーのとの連動が可能です。</p>



<h4 class="wp-block-heading"><span id="toc33">メールの送信</span></h4>



<p>メールの送信を行うことができます。<br>TO、CC、BCCも設定可能。<br>本文は、HTML形式で書くorセルに本文を設定しておき、その本文を参照することも可能です。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: java; title: ; notranslate">
function code_mail(){
  
  var recipient=&quot;blueinfinity4ever@gmail.com&quot;//宛先
  var subject=&quot;【サンプル】メールテスト&quot;//題名
  var body=&quot;メールテストをしております\n\n&quot;//本文
  
  //MailApp.sendEmail( 送信先, タイトル, メッセージ )
  MailApp.sendEmail(recipient, subject, body)
  
  
  //toなどなども指定できる。//
  MailApp.sendEmail({
    to: &quot;blueinfinity4ever@gmail.com&quot;, //to
    cc: &quot;blueinfinity4ever@gmail.com&quot;, //cc
    bcc: &quot;code1@gmail.com, code2@hotmail.com&quot;, //bcc
    //name: &quot;nujonoa&quot;,//送信者名を変えられる。
    subject: &quot;件名&quot;,  //件名
    body: &quot;本文\nこれは本文です&quot;, //分分
    htmlBody: &quot;&lt;b&gt;本文&lt;/b&gt;&lt;br&gt;これは本文です&quot;, //htmlで装飾した本文
    //replyTo: &quot;code3@hotmail.com&quot;,　//返信先を指定できる。
});
  
  //POPUPで確認してからメールを送信
  var popUp = Browser.msgBox(&quot;送信確認です。&quot;, add + &quot;へ送信しますか？&quot;, Browser.Buttons.OK_CANCEL);
  if (popUp == 'ok') {
    var mailSubject = sheet.getSheetByName('メールテンプレ').getRange(5,2).getValue();
    var mailBody = sheet.getSheetByName('メールテンプレ').getRange(6,2).getValue();
    GmailApp.sendEmail(add, mailSubject, mailBody ,{cc:&quot;blueinfinity4ever@gmail.com&quot;});
    Browser.msgBox(&quot;送信しました&quot;);
  } else {
    Browser.msgBox(&quot;キャンセルしました&quot;);
  }
  
}
</pre></div>


<h2 class="wp-block-heading"><span id="toc34">まとめ</span></h2>



<p>ということで、</p>



<p>今回は、スプレッドシートのVBA＝GASの使い方を説明させてもらいました。</p>



<p>これからどんどん必要になっていくジャンルだと思いますので、<br>ぜひ覚えてみてはいかがでしょうか？</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/introduction-to-gas-and-sample-code/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>VBAダブルコーテーション内の&quot;&quot;の使い方!</title>
		<link>https://nujonoa.com/doublecotation-vba/</link>
					<comments>https://nujonoa.com/doublecotation-vba/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Wed, 02 Oct 2019 11:00:06 +0000</pubDate>
				<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[ダブルコーテーション]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[vba]]></category>
		<category><![CDATA["]]></category>
		<guid isPermaLink="false">http://nujonoa.com/?p=2512</guid>

					<description><![CDATA[目次 VBA,ダブルコーテーション内の""の使い方!実例を使って紹介応用編解説A1A2A3まとめ VBA,ダブルコーテーション内の""の使い方! VBAで数式を作成するときに、数式を「”」ダブルコーテーションで囲いますが [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p></p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-16" checked><label class="toc-title" for="toc-checkbox-16">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">VBA,ダブルコーテーション内の""の使い方!</a></li><li><a href="#toc2" tabindex="0">実例を使って紹介</a></li><li><a href="#toc3" tabindex="0">応用編</a><ol><li><a href="#toc4" tabindex="0">解説</a><ol><li><a href="#toc5" tabindex="0">A1</a></li><li><a href="#toc6" tabindex="0">A2</a></li><li><a href="#toc7" tabindex="0">A3</a></li></ol></li></ol></li><li><a href="#toc8" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">VBA,ダブルコーテーション内の""の使い方!</span></h2>



<p>VBAで数式を作成するときに、<br>数式を「”」ダブルコーテーションで囲いますが、<br>数式内にも「”」があるとエラーが起こってしまいます。</p>



<p>これを防ぐためには、数式内の「”」を「””」と2個にすることで回避できます。</p>



<h2 class="wp-block-heading"><span id="toc2">実例を使って紹介</span></h2>



<p>VBAで数式を記載するとき、一番簡単なやり方は、</p>



<p>①エクセルのセル内に数式を作り、コピーする。<br>②range("A1").value="数式"　として、数式部分にペーストする</p>



<p>という手順ではないでしょうか？<br>しかし、数式内に「"(ダブルコーテーション)」を使ってあるときには、<br>エラーとなってしまいます。</p>



<p>例えば、</p>



<p>=IF(A2="男性","〇","×")　を上記のやり方で実装すると<br>↓<br>RANGE("A1").VALUE="<span class="bold-red">=IF(A2="男性","〇","×")</span>"<br>となりますが、下記の通りエラーが出てしまいます。</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="361" height="267" src="https://nujonoa.com/wp-content/uploads/2019/10/image-5.png" alt="" class="wp-image-2515" srcset="https://nujonoa.com/wp-content/uploads/2019/10/image-5.png 361w, https://nujonoa.com/wp-content/uploads/2019/10/image-5-300x222.png 300w" sizes="(max-width: 361px) 100vw, 361px" /></figure>



<p>なぜこのような結果になるかというと、<br>””に囲まれた範囲は文字列とみなされるため、<br><span class="bold-red"><span class="bold-blue">"=IF(A2="</span></span><span class="bold-blue"> <span class="bold-green">男性</span> </span><span class="bold-red"><span class="bold-blue">","</span> </span><span class="bold-blue"><span class="bold-green">〇</span></span> <span class="bold-red"><span class="bold-blue">","</span></span><span class="blue"><span class="bold-blue"> <span class="bold-green">×</span> </span></span><span class="bold-red">")"</span></p>



<p><span class="bold-blue">青色　⇒　文字列</span><br><span class="bold-green">緑　⇒　何かの変数？？？</span><br>と、コンパイラーが認識してしまうからです。</p>



<p>これを回避するためには、数式内の「"」を2回繰り返し「""」とします。</p>



<p><span class="fz-20px">"=IF(A2=</span><span class="bold-green"><span class="bold-blue"><span class="bold-red"><span class="fz-20px">"</span></span></span></span><span class="bold-red"><span class="fz-20px"> </span></span><span class="fz-20px">男性 </span><span class="bold-red"><span class="fz-20px">"</span></span><span class="fz-20px">,</span><span class="bold-red"><span class="fz-20px">"</span></span><span class="fz-20px"> 〇 </span><span class="bold-red"><span class="fz-20px">"</span></span><span class="fz-20px">,</span><span class="bold-red"><span class="fz-20px">"</span></span><span class="fz-20px"> ×</span><span class="bold-red"><span class="fz-20px"> "</span></span><span class="fz-20px">)</span><span class="bold-red"><span class="fz-20px">"</span></span></p>



<p>↓</p>



<p><span class="fz-20px">"=IF(A2=</span><span class="bold-red"><span class="fz-20px">""</span></span><span class="fz-20px"> 男性 </span><span class="bold-red"><span class="fz-20px">""</span></span><span class="fz-20px">,</span><span class="bold-red"><span class="fz-20px">""</span></span><span class="fz-20px"> 〇 </span><span class="bold-red"><span class="fz-20px">""</span></span><span class="fz-20px">,</span><span class="bold-red"><span class="fz-20px">""</span></span><span class="fz-20px"> × </span><span class="bold-red"><span class="fz-20px">""</span></span><span class="fz-20px">)"</span></p>



<p>で回避することができます。</p>



<h2 class="wp-block-heading"><span id="toc3">応用編</span></h2>



<p>先ほどのことが分かったとして、<br>下記コードで各セルに何が表示されるかお分かりですか？</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
Sub ダブルコーテーションの使い方()

S = &quot;TEST&quot;

Range(&quot;A1&quot;).Value = &quot; &quot; &amp; S &amp; &quot; &quot;
Range(&quot;A2&quot;).Value = &quot;&quot;&quot; &amp; S &amp; &quot;&quot;&quot;
Range(&quot;A3&quot;).Value = &quot;&quot;&quot;&quot; &amp; S &amp; &quot;&quot;&quot;&quot;

End Sub
</pre></div>


<div class="wp-block-cocoon-blocks-toggle-box-1 toggle-wrap block-box"><input id="toggle-checkbox-20191002130958" class="toggle-checkbox" type="checkbox"/><label class="toggle-button" for="toggle-checkbox-20191002130958">答え</label><div class="toggle-content">
<figure class="wp-block-image"><img loading="lazy" decoding="async" width="107" height="75" src="https://nujonoa.com/wp-content/uploads/2019/10/image-7.png" alt="" class="wp-image-2519"/></figure>
</div></div>



<h3 class="wp-block-heading"><span id="toc4">解説</span></h3>



<p>1つずつ解説していきます。</p>



<p>分かりやすいように、<br><span class="marker-animation-2071">文字列として認識させるための「"」を赤色</span><br><span class="marker-animation-2072">数式に使用するための「”」を緑色として</span><br>区別していきます。</p>



<h4 class="wp-block-heading"><span id="toc5">A1</span></h4>



<p>セルA1の数式の「"」に色を付けると下記の通りとなります。</p>



<p> <span class="marker-animation-2071"><span class="bold-red">" "</span></span> &amp; S &amp; <span class="marker-animation-2071"><span class="bold-red">" "</span></span></p>



<p>文字列として認識させるために「”」が使われており、<br>その間は「 (空白)」となっていますので、表示結果は「 TEST 」となります。</p>



<h4 class="wp-block-heading"><span id="toc6">A2</span></h4>



<p>セルA2の数式の「"」に色を付けると下記の通りとなります。</p>



<p> <span class="marker-animation-2071"><span class="bold-red">"<span class="bold-green"><span class="marker-animation-2072">""</span></span></span></span><span class="bold-green"><span class="marker-animation-2072"> </span></span>&amp; S &amp; <span class="marker-animation-2071"><span class="bold-red"><span class="marker-animation-2072"><span class="bold-green">""</span></span>"</span></span></p>



<p>この場合、一番左端、右端の「"」は文字列を表すもの。<br>その中にある「""」は数式に使用するための「"」になります。</p>



<p>結果として、Sも含めてすべてを文字列として認識しますので、「" &amp; S &amp; "」が表示されます。</p>



<h4 class="wp-block-heading"><span id="toc7">A3</span></h4>



<p>セルA3の数式の「"」に色を付けると下記の通りとなります。</p>



<p> <span class="marker-animation-2071"><span class="bold-red">"<span class="bold-green"><span class="marker-animation-2072">""</span></span></span></span><span class="bold-green"><span class="marker-animation-2072"><span class="bold-red"><span class="marker-animation-2071">"</span></span></span></span> &amp; S &amp; <span class="marker-animation-2071"><span class="bold-red">"</span><span class="bold-red"><span class="marker-animation-2072"><span class="bold-green">""</span></span>"</span></span></p>



<p>この場合、""""は文字列を表す「"～"」に囲まれた「""」ですので、左側、右側は「"」<br>と表示されます。</p>



<p>結果として、「”」 &amp; S &amp; 「"」となりますので、表示は"TEST"となります。</p>



<h2 class="wp-block-heading"><span id="toc8">まとめ</span></h2>



<p>非常に複雑ですが、<br>まずはきちんと数式を作った後に、<br>「”」⇒「""」に変更していくといいと思います。</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/doublecotation-vba/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【応用編・動画あり】VBAでYAHOOの検索補助を抜き出してみた～VBA(マクロ)でIE操作</title>
		<link>https://nujonoa.com/vba-ie-yahoo-sujest/</link>
					<comments>https://nujonoa.com/vba-ie-yahoo-sujest/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Thu, 30 May 2019 14:15:05 +0000</pubDate>
				<category><![CDATA[IE関係]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[vba]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[簡単]]></category>
		<category><![CDATA[クリック]]></category>
		<category><![CDATA[ログイン]]></category>
		<category><![CDATA[マクロ]]></category>
		<guid isPermaLink="false">http://nujonoa.com/?p=1211</guid>

					<description><![CDATA[目次 VBAでYAHOOの検索補助を抜き出してみた要素の抜き出し方が難しい。。入力補助の要素を検索記事のまとめ VBAでYAHOOの検索補助を抜き出してみた みんなどんなものを検索しているのかなーと検索できる方法はないか [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-18" checked><label class="toc-title" for="toc-checkbox-18">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">VBAでYAHOOの検索補助を抜き出してみた</a><ol><li><a href="#toc2" tabindex="0">要素の抜き出し方が難しい。。</a></li></ol></li><li><a href="#toc3" tabindex="0">入力補助の要素を検索</a></li><li><a href="#toc4" tabindex="0">記事のまとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">VBAでYAHOOの検索補助を抜き出してみた</span></h2>



<p>みんなどんなものを検索しているのかなーと検索できる方法はないかな？と思ったときに、<br><strong>YAHOOのキーワード入力補助が役立つのではないかと思いVBAで抜き出してみました！</strong><br><span class="bold-red"><span class="marker-under">↓(赤で囲った場所です！）</span></span></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="500" height="216" src="https://nujonoa.com/wp-content/uploads/2019/05/image-72-500x216.png" alt="" class="wp-image-1213" srcset="https://nujonoa.com/wp-content/uploads/2019/05/image-72-500x216.png 500w, https://nujonoa.com/wp-content/uploads/2019/05/image-72-300x130.png 300w, https://nujonoa.com/wp-content/uploads/2019/05/image-72-768x332.png 768w, https://nujonoa.com/wp-content/uploads/2019/05/image-72-900x389.png 900w, https://nujonoa.com/wp-content/uploads/2019/05/image-72.png 905w" sizes="(max-width: 500px) 100vw, 500px" /></figure>



<h3 class="wp-block-heading"><span id="toc2">要素の抜き出し方が難しい。。</span></h3>



<p>VBAのコードは、<br>①サイトを立ち上げて<br>②検索ボックスに値を入れて、<br>③<span class="bold-red"><span class="marker-under">入力補助の要素のinnerTEXTを書き出す。</span></span><br>という内容なのですが、<br>③の有力補助のinnerTextをに抜き出すのが、ちょっと難儀しましたので、説明していきます。</p>



<h2 class="wp-block-heading"><span id="toc3">入力補助の要素を検索</span></h2>



<p>まずはYAHOOに行って、入力補助を表示させます。<br>その状態で、「F12」を押し開発者ツールを起動させます。<br>ctrl+Bで要素の検索をして、入力補助をクリックします。<br>すると、ID「srchAssistLists」の中に検索候補が含まれていることが分かりました。<br>そして、その中身はリンクの&lt;a&gt;で挟まれていることが分かりましたので、<br><strong>.getElementbyid("srchAssistLists").getElementsbytagname("A")(0).INNERTEXT</strong><br>で順に抜き出していけば書き出せることが分かりました。</p>



<figure class="wp-block-video"><video autoplay controls muted src="https://nujonoa.com/wp-content/uploads/2019/05/2019-05-30_23h00_50.mp4"></video></figure>



<p>ということで、↓のようなコードを下記実行しました！</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
Sub IEoutputyahoo()

Application.ScreenUpdating = False
Dim objIE As Object
Set objIE = GetObject(&quot;&quot;, &quot;InternetExplorer.Application&quot;)
objIE.Visible = True
     
    objIE.Navigate &quot;https://www.yahoo.co.jp/&quot;  ' このURLを任意に変更
     
    ' ページの表示完了待ち｡
    While objIE.ReadyState &lt;&gt; 4 Or objIE.Busy = True
        DoEvents
    Wend

    Dim objTABLE As Object
    Set objTABLE = objIE.document
     
    On Error Resume Next　'結構エラーが伴うのでつけとく

    Dim A As Object
    
    For i = 2 To 73
    
    objIE.document.getElementbyid(&quot;srchfield&quot;).Value = Cells(i, 2)
    objIE.document.getElementbyid(&quot;srchfield&quot;).Select
    SendKeys &quot;{BS}&quot;
    SendKeys Cells(i, 2)

    Application.Wait Now() + TimeValue(&quot;00:00:01&quot;)

    
Cells(i, 4).Value = objIE.document.getElementbyid(&quot;srchAssistLists&quot;).getElementsbytagname(&quot;A&quot;)(0).INNERTEXT
Cells(i, 5).Value = objIE.document.getElementbyid(&quot;srchAssistLists&quot;).getElementsbytagname(&quot;A&quot;)(1).INNERTEXT
Cells(i, 6).Value = objIE.document.getElementbyid(&quot;srchAssistLists&quot;).getElementsbytagname(&quot;A&quot;)(2).INNERTEXT
Cells(i, 7).Value = objIE.document.getElementbyid(&quot;srchAssistLists&quot;).getElementsbytagname(&quot;A&quot;)(3).INNERTEXT
Cells(i, 8).Value = objIE.document.getElementbyid(&quot;srchAssistLists&quot;).getElementsbytagname(&quot;A&quot;)(4).INNERTEXT
Cells(i, 9).Value = objIE.document.getElementbyid(&quot;srchAssistLists&quot;).getElementsbytagname(&quot;A&quot;)(5).INNERTEXT
Cells(i, 10).Value = objIE.document.getElementbyid(&quot;srchAssistLists&quot;).getElementsbytagname(&quot;A&quot;)(7).INNERTEXT
Cells(i, 11).Value = objIE.document.getElementbyid(&quot;srchAssistLists&quot;).getElementsbytagname(&quot;A&quot;)(8).INNERTEXT
Cells(i, 12).Value = objIE.document.getElementbyid(&quot;srchAssistLists&quot;).getElementsbytagname(&quot;A&quot;)(9).INNERTEXT
Cells(i, 13).Value = objIE.document.getElementbyid(&quot;srchAssistLists&quot;).getElementsbytagname(&quot;A&quot;)(10).INNERTEXT
            
        ' ページの表示完了待ち｡
    While objIE.ReadyState &lt;&gt; 4 Or objIE.Busy = True
        DoEvents
    Wend

    Next

 Application.ScreenUpdating = True

End Sub
</pre></div>


<p>上記のプログラムを実行すると2列目に入っている文字をどんどん入力し、<br>キーワードの候補を抜きだしてくれます。</p>



<p>↓結果は下記の通り、エクセルに書き出されました！<br>　かなり楽ちんでした。。。</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="657" height="368" src="https://nujonoa.com/wp-content/uploads/2019/05/image-74.png" alt="" class="wp-image-1220" srcset="https://nujonoa.com/wp-content/uploads/2019/05/image-74.png 657w, https://nujonoa.com/wp-content/uploads/2019/05/image-74-300x168.png 300w, https://nujonoa.com/wp-content/uploads/2019/05/image-74-500x280.png 500w, https://nujonoa.com/wp-content/uploads/2019/05/image-74-120x68.png 120w, https://nujonoa.com/wp-content/uploads/2019/05/image-74-160x90.png 160w, https://nujonoa.com/wp-content/uploads/2019/05/image-74-320x180.png 320w" sizes="(max-width: 657px) 100vw, 657px" /></figure>



<h2 class="wp-block-heading"><span id="toc4">記事のまとめ</span></h2>



<p>この記事のまとめは下記のとおりです。</p>



<div class="wp-block-cocoon-blocks-icon-box alert-box common-icon-box block-box">
<p>・無理やりにでもとっかかりになる候補を探せ！！笑<br>・番号は（0）から始まるので注意すること！</p>
</div>



<p><span class="marker-animation">その他、VBAでIEを動かすために必要な情報をまとめています！！</span></p>



<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box has-border-color has-pink-border-color"><div class="tab-caption-box-label block-box-label box-label fab-book"><span class="tab-caption-box-label-text block-box-label-text box-label-text"><span class="marker-animation-2071">こちらを参照ください！</span></span></div><div class="tab-caption-box-content block-box-content box-content">
<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-together">


<a rel="noopener" target="_blank" href="https://nujonoa.com/summary-of-how-to-control-ie-with-vba/" title="【まとめ】VBAでIEを動かすプログラムまとめ！" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-right cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://nujonoa.com/wp-content/uploads/2019/11/coins-1015125_1280-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nujonoa.com/wp-content/uploads/2019/11/coins-1015125_1280-160x90.jpg 160w, https://nujonoa.com/wp-content/uploads/2019/11/coins-1015125_1280-120x68.jpg 120w, https://nujonoa.com/wp-content/uploads/2019/11/coins-1015125_1280-320x180.jpg 320w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【まとめ】VBAでIEを動かすプログラムまとめ！</div><div class="blogcard-snippet internal-blogcard-snippet">まだ、あまり確立されていないVBAでIEを動かすプログラムについて、素人ながらまとめてみました！【まとめ】VBAでIEを動かすプログラムまとめ！・VBA(マクロ)でIEを動かしたい！・社内プログラムでIEと連動させたい。・けれど、参考になる...</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 loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nujonoa.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nujonoa.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.10</div></div></div></div></a>

</div>



<p></p>
</div></div>
]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/vba-ie-yahoo-sujest/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="http://nujonoa.com/wp-content/uploads/2019/05/2019-05-30_23h00_50.mp4" length="848856" type="video/mp4" />

			</item>
		<item>
		<title>【簡単】VBAでIEの表をエクセルに書き出す方法～VBA(マクロ)でIE操作</title>
		<link>https://nujonoa.com/vba-ie-table-output/</link>
					<comments>https://nujonoa.com/vba-ie-table-output/#comments</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Fri, 17 May 2019 16:46:55 +0000</pubDate>
				<category><![CDATA[IE関係]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[vba]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[簡単]]></category>
		<category><![CDATA[クリック]]></category>
		<category><![CDATA[ログイン]]></category>
		<guid isPermaLink="false">http://nujonoa.com/?p=906</guid>

					<description><![CDATA[目次 VBAでIEの表の内容をエクセルに書き出す方法～楽天証券の表の内容を書き出すプログラムの解説htmlの表(テーブル)の構成For Each A In objIE.document.getElementsByTagN [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-20" checked><label class="toc-title" for="toc-checkbox-20">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">VBAでIEの表の内容をエクセルに書き出す方法～</a><ol><li><a href="#toc2" tabindex="0">楽天証券の表の内容を書き出す</a></li></ol></li><li><a href="#toc3" tabindex="0">プログラムの解説</a><ol><li><a href="#toc4" tabindex="0">htmlの表(テーブル)の構成</a><ol><li><a href="#toc5" tabindex="0">For Each A In objIE.document.getElementsByTagName("tr")</a></li><li><a href="#toc6" tabindex="0"> objIE.document.getElementsByTagName("tr").Children(”番号”) .innertext</a></li><li><a href="#toc7" tabindex="0">セルへの書き出し</a></li><li><a href="#toc8" tabindex="0">おまけ：Application.StatusBar = I &amp; "/" &amp; J</a></li></ol></li></ol></li><li><a href="#toc9" tabindex="0">記事のまとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">VBAでIEの表の内容をエクセルに書き出す方法～</span></h2>



<p>IEの表をVBAでエクセルに書き出したい！<br>でも、IDや名前もわからないし、どうやって抜き出すべきかわからない！<br>という人も多いかと思います。<br>そこで今回は、楽天証券の表の内容を書き出すプログラムを説明しながら、<br>その方法を解説したいと思います。</p>



<h3 class="wp-block-heading"><span id="toc2">楽天証券の表の内容を書き出す</span></h3>



<p>楽天証券の表を書き出すためのコードになります。簡単に説明すると、<br>①サイトを立ち上げて<br>②<span class="bold-red"><span class="marker-under">tagName＝”tr”を検索　</span></span>(”tr”は「行」を表します。)<br>③<span class="bold-red"><span class="marker-under">.chirdrenを用いてtrの中の子要素の「列」を取得、書き出し。</span></span><br>　※何個列があるかわからないので、とりあえず20まで取得。<br>　　エラーが起こらないようにOn Error Resume Next入れてます。<br>という内容です。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
Sub IE_table_output()
    
 Application.ScreenUpdating = False
     
'IEの起動
Dim objIE As Object
     
Set objIE = GetObject(&quot;&quot;, &quot;InternetExplorer.Application&quot;)
     
objIE.Visible = True
         
    objIE.Navigate &quot;https://www.rakuten-sec.co.jp/web/fund/find/search/result.html&quot;  ' このURLを任意に変更
         
    ' ページの表示完了待ち｡
    While objIE.ReadyState &lt;&gt; 4 Or objIE.Busy = True
        DoEvents
    Wend
     
    On Error Resume Next      '値がないとエラーが出るので、エラー回避用
    
    I = 1  '開始行を指定
    L = 0
    J = objIE.document.all.Length  '要素の数を知る
        
    Cells(I, 1).Value = &quot;No&quot;
              
    Dim A As Object
         
    For Each A In objIE.document.getElementsByTagName(&quot;tr&quot;)
    
        For L = 0 To 20
    
            Cells(I, L + 1) = A.Children(L).innertext
           
        Next
        
        I = I + 1
            
        'ステータスバーに進捗を表示
        Application.StatusBar = I &amp; &quot;/&quot; &amp; J
         
    Next
        
    On Error GoTo 0
  
    Cells.WrapText = False
    
Application.ScreenUpdating = True
Application.StatusBar = False

End Sub

</pre></div>


<p>上記のプログラムを実行すると楽天証券の下記の表を、エクセルに書き出すことができたと思います。</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="720" height="447" src="https://nujonoa.com/wp-content/uploads/2019/05/image-53.png" alt="" class="wp-image-899" srcset="https://nujonoa.com/wp-content/uploads/2019/05/image-53.png 720w, https://nujonoa.com/wp-content/uploads/2019/05/image-53-300x186.png 300w, https://nujonoa.com/wp-content/uploads/2019/05/image-53-500x310.png 500w" sizes="(max-width: 720px) 100vw, 720px" /></figure>



<p>↓エクセルに書き出される</p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="900" height="118" src="https://nujonoa.com/wp-content/uploads/2019/05/image-56-900x118.png" alt="" class="wp-image-902" srcset="https://nujonoa.com/wp-content/uploads/2019/05/image-56-900x118.png 900w, https://nujonoa.com/wp-content/uploads/2019/05/image-56-300x39.png 300w, https://nujonoa.com/wp-content/uploads/2019/05/image-56-500x66.png 500w, https://nujonoa.com/wp-content/uploads/2019/05/image-56-768x101.png 768w, https://nujonoa.com/wp-content/uploads/2019/05/image-56.png 1322w" sizes="(max-width: 900px) 100vw, 900px" /></figure>



<h2 class="wp-block-heading"><span id="toc3">プログラムの解説</span></h2>



<h3 class="wp-block-heading"><span id="toc4">htmlの表(テーブル)の構成</span></h3>



<p>htmlの表の構成は下記のようになっております。<br><span class="bold-red"><span class="marker-under">trが行、th,tdが列を示し、trの中にthやtdが含まれております。</span></span><br>この特性を利用してプログラムを書いていきます。<br>※ちなみにthは「見出しで太字となり中央揃い」tdは「通常の文で左揃い」の違いです。</p>



<pre class="wp-block-preformatted">&lt;table&gt;
&lt;tr&gt;
 &lt;th&gt;行1列1&lt;/th&gt;
 &lt;th&gt;行1列2 &lt;/th&gt;
 &lt;th&gt;行1列3 &lt;/th&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;行2列1&lt;/td&gt;
 &lt;td&gt;行2列2 &lt;/td&gt;
 &lt;td&gt;行2列3 &lt;/td&gt; 
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;行3列1&lt;/td&gt;
 &lt;td&gt;行3列2 &lt;/td&gt;
 &lt;td&gt;行3列3 &lt;/td&gt; 
 &lt;/tr&gt; 
 &lt;/table&gt;</pre>



<h4 class="wp-block-heading"><span id="toc5">For Each A In objIE.document.getElementsByTagName("tr")</span></h4>



<p>まずは、for each構文を使って、タグの名前がtrのものをAに格納します。</p>



<h4 class="wp-block-heading"><span id="toc6"> objIE.document.getElementsByTagName("tr").Children(”番号”) .innertext</span></h4>



<p>列の要素はtrタグの中にありましたので、<br>A.Children(”番号”).innerhtmlでtrタグの中のテキストを一つずつ書き出していきます。<br>注意していただきたいことは、番号が「0」から始まることです。<br>ちなみに今回は、列の要素が何個あるかわからなかったので、0~20と21回繰り返しています。<br>また、要素がないとエラーが起きますので、On Error Resume Next で無理やり実行しています。</p>



<h4 class="wp-block-heading"><span id="toc7">セルへの書き出し</span></h4>



<p>trは行を表していますので、trごとにi＝i+1と加算していっています。<br>また、子要素tdは列でしたので、子要素を進めるのと同時にL=L+1と加算してセルに書き出していっています。</p>



<h4 class="wp-block-heading"><span id="toc8">おまけ：Application.StatusBar = I &amp; "/" &amp; J</span></h4>



<p>進捗状況を確認するため、ステータスバーに進捗状況を表示させています。</p>



<h2 class="wp-block-heading"><span id="toc9">記事のまとめ</span></h2>



<p>この記事のまとめは下記のとおりです。</p>



<div class="wp-block-cocoon-blocks-icon-box alert-box common-icon-box block-box">
<p>・表のデータは、chirdrenを用いて要素を特定すると簡単に書き出すことができる！<br>・番号は（0）から始まるので注意すること！</p>
</div>



<p><span class="marker-animation">その他、VBAでIEを動かすために必要な情報をまとめています！！</span></p>



<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box has-border-color has-pink-border-color"><div class="tab-caption-box-label block-box-label box-label fab-book"><span class="tab-caption-box-label-text block-box-label-text box-label-text"><span class="marker-animation-2071">こちらを参照ください！</span></span></div><div class="tab-caption-box-content block-box-content box-content">
<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-together">


<a rel="noopener" target="_blank" href="https://nujonoa.com/summary-of-how-to-control-ie-with-vba/" title="【まとめ】VBAでIEを動かすプログラムまとめ！" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-right cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://nujonoa.com/wp-content/uploads/2019/11/coins-1015125_1280-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nujonoa.com/wp-content/uploads/2019/11/coins-1015125_1280-160x90.jpg 160w, https://nujonoa.com/wp-content/uploads/2019/11/coins-1015125_1280-120x68.jpg 120w, https://nujonoa.com/wp-content/uploads/2019/11/coins-1015125_1280-320x180.jpg 320w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【まとめ】VBAでIEを動かすプログラムまとめ！</div><div class="blogcard-snippet internal-blogcard-snippet">まだ、あまり確立されていないVBAでIEを動かすプログラムについて、素人ながらまとめてみました！【まとめ】VBAでIEを動かすプログラムまとめ！・VBA(マクロ)でIEを動かしたい！・社内プログラムでIEと連動させたい。・けれど、参考になる...</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 loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nujonoa.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nujonoa.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.10</div></div></div></div></a>

</div>



<p></p>
</div></div>
]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/vba-ie-table-output/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
	</channel>
</rss>
