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

<channel>
	<title>vba | nujonoa_blog</title>
	<atom:link href="https://nujonoa.com/tag/vba/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>vba | 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[vba]]></category>
		<category><![CDATA[条件付き書式]]></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→VBSの変換！VBS→VBAの起動を！</title>
		<link>https://nujonoa.com/vba-to-vbs/</link>
					<comments>https://nujonoa.com/vba-to-vbs/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Wed, 18 Aug 2021 13:43:00 +0000</pubDate>
				<category><![CDATA[エクセル]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[vba]]></category>
		<category><![CDATA[VBS]]></category>
		<guid isPermaLink="false">http://nujonoa.com/?p=9668</guid>

					<description><![CDATA[目次 VBA→VBSの変換！VBS→VBAの起動を！コードコードの説明活用方法 VBA→VBSの変換！VBS→VBAの起動を！ VBAでファイル名の変更などを行った場合、これを他の人にも展開したいなと考えることがあるかと [&#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-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→VBSの変換！VBS→VBAの起動を！</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→VBSの変換！VBS→VBAの起動を！</span></h2>



<p>VBAでファイル名の変更などを行った場合、<br>これを他の人にも展開したいなと考えることがあるかと思います。</p>



<p>そこでお勧めするのが、VBSを用いる方法です。</p>



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


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
Dim ExcelApp
Dim ExcelBook
Dim FilePath

FilePath = &quot;G:\共有ドライブ\TEST_FOLDER\utf-8_to_shiftjis.xlsm&quot; '←ここを変更
VBA_P = &quot;TEST1&quot; '←ここを変更

Set ExcelApp=CreateObject(&quot;Excel.Application&quot;)
Set ExcelBook= ExcelApp.Workbooks.Open(FilePath)
ExcelApp.ActiveWorkbook.Worksheets(1).select

ExcelApp.visible = false

ExcelApp.Run VBA_P

ExcelBook.Close True
ExcelApp.quit

Set ExcelApp=Nothing
Set ExcelBook=Nothing
</pre></div>


<h2 class="wp-block-heading"><span id="toc3">コードの説明</span></h2>



<p>コードは非常に簡単で、</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
Set ExcelApp=CreateObject(&quot;Excel.Application&quot;)
Set ExcelBook= ExcelApp.Workbooks.Open(FilePath)
</pre></div>


<p>でエクセルを立ち上げて</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
ExcelApp.ActiveWorkbook.Worksheets(1).select
</pre></div>


<p>でワークシートを指定して</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
ExcelApp.visible = false

ExcelApp.Run VBA_P
</pre></div>


<p>Excelを見えないように、マクロをはしらせ</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
ExcelBook.Close True
ExcelApp.quit

Set ExcelApp=Nothing
Set ExcelBook=Nothing
</pre></div>


<p>これで、エクセルを閉じております。</p>



<h2 class="wp-block-heading"><span id="toc4">活用方法</span></h2>



<p>活用方法としては、</p>



<p>1ヶ月、1週間毎に繰り返し行う集計、更新作業などを、<br>ワンクリックで更新することができるようになります。</p>



<p>また、</p>



<p>ExcelApp.visible = True '←F<br>'コメントに変換　ExcelBook.Close True</p>



<p>で、エクセルファイルをそのまま立ち上げたまま、<br>チェック作業に入ることも可能です。</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/vba-to-vbs/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】最終行、最終列を取得する方法3選</title>
		<link>https://nujonoa.com/how-to-get-the-last-row/</link>
					<comments>https://nujonoa.com/how-to-get-the-last-row/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Sun, 31 Jan 2021 01:43:50 +0000</pubDate>
				<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[vba]]></category>
		<category><![CDATA[最終行]]></category>
		<category><![CDATA[最終列]]></category>
		<guid isPermaLink="false">http://nujonoa.com/?p=8702</guid>

					<description><![CDATA[最終行、最終列を取得する方法を紹介します。 目次 【VBA】最終行を取得する方法3選「Ctrl+↑」「Ctrl+←」を再現「Ctrl+↓」「Ctrl+→」を再現最終行(空白はNG)を検出 【VBA】最終行を取得する方法3 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<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-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】最終行を取得する方法3選</a><ol><li><a href="#toc2" tabindex="0">「Ctrl+↑」「Ctrl+←」を再現</a></li><li><a href="#toc3" tabindex="0">「Ctrl+↓」「Ctrl+→」を再現</a></li><li><a href="#toc4" tabindex="0">最終行(空白はNG)を検出</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">【VBA】最終行を取得する方法3選</span></h2>



<p>最終行、最終列をとってくるコードは、<br>「一番使うコードなのに」忘れてしまうんです…</p>



<p>ということで、今回は覚書で3種類さっと紹介したいと思います。</p>



<h3 class="wp-block-heading"><span id="toc2">「Ctrl+↑」「Ctrl+←」を再現</span></h3>



<p>「Ctrl+↑」「Ctrl+←」を再現して最終行を持ってくるのが、<br>下記プログラムです。<br>データが入っている行を選択してあげる必要があるので注意が必要です。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
LASTY = Cells(Rows.Count, 2).End(xlUp).Row '1を任意に替える
LASTX = Cells(2, Columns.Count).End(xlToLeft).Column '1を任意に替える

Debug.Print LASTY, LASTX
</pre></div>


<h3 class="wp-block-heading"><span id="toc3">「Ctrl+↓」「Ctrl+→」を再現</span></h3>



<p>「Ctrl+↓」「Ctrl+→」を再現して最終行を持ってくるのが、<br>下記プログラムです。<br>こちらもデータが入っている行を選択してあげる必要があるので注意が必要です。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
LASTY = Cells(1,3).End(xlDown).Row
LASTY = Cells(1,3).End(xlToRight).Column
</pre></div>


<h3 class="wp-block-heading"><span id="toc4">最終行(空白はNG)を検出</span></h3>



<p>使っている範囲をカウントするので、<br>空白行があると(最終行-空白行)が検出されてしまうのが、少々問題ですが、<br>一番きれいなのがこの関数です。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
LASTY=ActiveSheet.UsedRange.Rows.Count
LASTX=ActiveSheet.UsedRange.Columns.Count
</pre></div>


<p>下記のような場合、上記のコードでは、<br>・LASTY=10<br>・LASTX=4<br>となってしまいます。<br>・使っている行として罫線もカウントされますので、<br>　11行目までカウントされますが、1行目は使ってないので、答えは11-1=10<br>・使っている列は、Eまでですカウントされますが、<br>　A列は使ってないので、5-1=4が返されます。<br>ですので、「A1セル」をタイトルか何かで埋めておく必要があります。</p>



<figure class="wp-block-image size-large"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2021/01/image-55.png"><img decoding="async" width="422" height="316" src="https://nujonoa.com/wp-content/uploads/2021/01/image-55.png" alt="" class="wp-image-8725" srcset="https://nujonoa.com/wp-content/uploads/2021/01/image-55.png 422w, https://nujonoa.com/wp-content/uploads/2021/01/image-55-300x225.png 300w" sizes="(max-width: 422px) 100vw, 422px" /></a></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/how-to-get-the-last-row/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】アクティブシートを特定のフォルダに保存、アップロードする方法</title>
		<link>https://nujonoa.com/save-active-sheet-to-folder/</link>
					<comments>https://nujonoa.com/save-active-sheet-to-folder/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Sun, 31 Jan 2021 01:22:00 +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=8672</guid>

					<description><![CDATA[DBフォルダを作ったはいいものの、残念ながら使われない。。ということもあるかと思います。そこで今回は、簡単にファイルをアップロードできるプログラムを紹介します。 目次 【VBA】アクティブシートを特定のフォルダに保存、ア [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>DBフォルダを作ったはいいものの、残念ながら使われない。。<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-8" checked><label class="toc-title" for="toc-checkbox-8">目次</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></li><li><a href="#toc4" tabindex="0">右クリックに追加</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">【VBA】アクティブシートを特定のフォルダに保存、アップロードする方法</span></h2>



<p>ファイルをアップロードする作業がめんどくさいことで、<br>データが登録されなくなってしまったら、データベースは本末転倒です。</p>



<p>そこで今回は、アクティブシートをDBフォルダに登録するプログラムを紹介します。</p>



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



<p>プログラムは下記のとおりです。<br>※ダブルクリックでコピーできます。</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)
        .Caption = &quot;ファイルアップロード(&amp;P)&quot;
        .OnAction = &quot;ファイルアップロード&quot;
    End With
End Sub

'ファイルを落とす際に、右クリックメニューから削除
Private Sub Auto_Close()
CommandBars(&quot;Cell&quot;).Controls(&quot;ファイルアップロード(&amp;P)&quot;).Delete
End Sub

Sub ファイルアップロード()

'フォルダの選択
  Dim folderPath As Variant
  With Application.FileDialog(msoFileDialogFolderPicker)
  .InitialFileName = &quot;C:\Downloads\&quot;'←イニシャルで表示されるフォルダです。変更してください。
   If .Show = 0 Then
     MsgBox &quot;キャンセルされました。&quot;
     Exit Sub
   End If
   folderPath = .SelectedItems(1)
  End With
 
’ファイル名の選択
HOZONSAKI = folderPath &amp; &quot;\&quot; 
HOZONMEI = Application.InputBox(Prompt:=&quot;ファイル名を入力してください。&quot; &amp; vbLf &amp; vbLf, Type:=2, Default:=ActiveSheet.Name)'←初期値はシートネームにしています。
   If HOZONSAKI = False Then
     MsgBox &quot;キャンセルされました。&quot;
     Exit Sub
   End If

'パスの作成
FName = HOZONSAKI &amp; HOZONMEI

'シートの複製
 ActiveSheet.Copy '名前を付け、ファイル形式も決めて特定の場所に保存する。
 ActiveWorkbook.SaveAs _
 Filename:=FName, _
 FileFormat:=xlOpenXMLWorkbook
 
  Application.DisplayAlerts = False
    ActiveWorkbook.Close
  Application.DisplayAlerts = True

End Sub
</pre></div>


<h2 class="wp-block-heading"><span id="toc3">プログラム紹介</span></h2>



<p>今回紹介するプログラムは、<br>セル上で、右クリック「ファイルアップロード」を選ぶと、<br>アクティブシートを指定したフォルダにアップロードできるプログラムになります。</p>



<p>まずは、アップロードを指定するプログラムがここになります。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
With Application.FileDialog(msoFileDialogFolderPicker)
  .InitialFileName = &quot;C:\Downloads\&quot;'←イニシャルで表示されるフォルダです。変更してください。
   If .Show = 0 Then
     MsgBox &quot;キャンセルされました。&quot;
     Exit Sub
   End If
   folderPath = .SelectedItems(1)
  End With
</pre></div>


<p>保存名を決めるのが、下記ファイルです。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
’ファイル名の選択
HOZONSAKI = folderPath &amp; &quot;\&quot; 
HOZONMEI = Application.InputBox(Prompt:=&quot;ファイル名を入力してください。&quot; &amp; vbLf &amp; vbLf, Type:=2, Default:=ActiveSheet.Name)'←初期値はシートネームにしています。
   If HOZONSAKI = False Then
     MsgBox &quot;キャンセルされました。&quot;
     Exit Sub
   End If

'パスの作成
FName = HOZONSAKI &amp; HOZONMEI

</pre></div>


<h2 class="wp-block-heading"><span id="toc4">右クリックに追加</span></h2>



<p>このようなプログラムは、右クリックのメニューに追加して、<br>簡単に使うことができるようにすることが重要です。</p>



<p>下記プログラムは、右クリックにメニューを追加する部分になります。</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)
        .Caption = &quot;ファイルアップロード(&amp;P)&quot;
        .OnAction = &quot;ファイルアップロード&quot;
    End With
End Sub

'ファイルを落とす際に、右クリックメニューから削除
Private Sub Auto_Close()
CommandBars(&quot;Cell&quot;).Controls(&quot;ファイルアップロード(&amp;P)&quot;).Delete
End Sub
</pre></div>]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/save-active-sheet-to-folder/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】SaveAsでファイルに連番を追加し重複を防ぐ方法</title>
		<link>https://nujonoa.com/create-and-save-serial-numbers/</link>
					<comments>https://nujonoa.com/create-and-save-serial-numbers/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Sun, 31 Jan 2021 01:15:16 +0000</pubDate>
				<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[vba]]></category>
		<category><![CDATA[フォルダ]]></category>
		<category><![CDATA[ファイル]]></category>
		<category><![CDATA[SAVEAS]]></category>
		<category><![CDATA[連番]]></category>
		<guid isPermaLink="false">http://nujonoa.com/?p=8705</guid>

					<description><![CDATA[VBAでSaveAsを使う際に、上書き保存するとそのままエクセルが落ちる現象が散見されました。 そこで、今回は、保存先フォルダに同一の名前が含まれるファイルがあった場合に、連番を付けて登録するプログラムを作成しました。  [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>VBAでSaveAsを使う際に、上書き保存するとそのままエクセルが落ちる現象が散見されました。</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-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】SaveAsでファイルに連番を追加し重複を防ぐ方法</a></li><li><a href="#toc2" tabindex="0">プログラムの説明</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">【VBA】SaveAsでファイルに連番を追加し重複を防ぐ方法</span></h2>



<p>SaveAsでファイルを保存する際に、<br>連番を追加し重複を防いで保存するプログラムを下記に示します。<br>※ダブルクリックでコピーできます。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
Sub ファイルに連番を付けて保存()

Application.ScreenUpdating = False

'保存先フォルダを選択*開始**************************************
  MsgBox &quot;保存先フォルダを選択&quot;
  Dim folderPath As Variant
  With Application.FileDialog(msoFileDialogFolderPicker)
  .InitialFileName = &quot;C:\Users\&quot;
   If .Show = 0 Then
     MsgBox &quot;キャンセルボタンをクリックしました。&quot;
     Exit Sub
   End If
   folderPath = .SelectedItems(1)
  End With
'保存先フォルダを選択*終了**************************************

'保存名を入力*開始***************************************************
FileName = Application.InputBox(Prompt:=&quot;名前を入力してください。&quot; &amp; vbLf &amp; vbLf, Type:=2, _
           Default:=ActiveSheet.Name &amp; &quot;_&quot; &amp; Year(Now) &amp; Month(Now) &amp; Day(Now))
   If FileName = False Then
     MsgBox &quot;キャンセルボタンをクリックしました。&quot;
     Exit Sub
   End If
'保存名を入力*終了***************************************************
   
'名前のダブり確認*開始***************************************************
        fn = &quot;*&quot; + FileName + &quot;*&quot;
        fnd = Dir(folderPath + &quot;\&quot; + fn, vbNormal)
        I = 0
        'ファイルがない場合
        If (fnd = &quot;&quot;) Then
            GoTo CONTINUE1
        'ファイルがあった場合
        Else
        Do While fnd &lt;&gt; &quot;&quot;
           fnd = Dir '次のファイル
           I = I + 1
        Loop
        End If
        FileName = FileName &amp; &quot;(&quot; &amp; I &amp; &quot;)&quot;

CONTINUE1:

'名前のダブり確認*終了***************************************************

FName = folderPath &amp; &quot;\&quot; &amp; FileName

'ファイルの保存***************************************************
    Worksheets.copy
    ActiveWorkbook.SaveAs _
    FileName:=FName, _
    FileFormat:=xlOpenXMLWorkbook
　'ファイルを閉じる
  Application.DisplayAlerts = False
    ActiveWorkbook.Close
  Application.DisplayAlerts = True

'ファイルの保存終了***************************************************


Application.ScreenUpdating = True

 
End Sub
</pre></div>


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



<p>プログラムの肝は、この部分になります。<br>Dir(ファイルパス)関数で、ファイルの存在を確認し、<br>もしファイルがあった場合、連番の数字を繰り上げていく形になります。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
'名前のダブり確認*開始***************************************************
        fn = &quot;*&quot; + FileName + &quot;*&quot;
        fnd = Dir(folderPath + &quot;\&quot; + fn, vbNormal)
        I = 0
        'ファイルがない場合
        If (fnd = &quot;&quot;) Then
            GoTo CONTINUE1
        'ファイルがあった場合
        Else
        Do While fnd &lt;&gt; &quot;&quot;
           fnd = Dir '次のファイル
           I = I + 1
        Loop
        End If
        FileName = FileName &amp; &quot;(&quot; &amp; I &amp; &quot;)&quot;

CONTINUE1:

'名前のダブり確認*終了***************************************************
</pre></div>


<p>fnでファイル名を含むすべてのファイルを検索していますが、</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
        fn = &quot;*&quot; + FileName + &quot;.Xls*&quot;
</pre></div>


<p>とすると、エクセルのファイルだけを検出して避けることが可能です。</p>



<p>あとは、名前野田ぶりを無くしたので、ファイルを保存して終了です。<br>Worksheets.copy<br>の後に何もつけないと、新しいブックにコピーされますので、<br>SaveAsで保存して終了です。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
FName = folderPath &amp; &quot;\&quot; &amp; FileName

'ファイルの保存***************************************************
    Worksheets.copy
    ActiveWorkbook.SaveAs _
    FileName:=FName, _
    FileFormat:=xlOpenXMLWorkbook
　'ファイルを閉じる
  Application.DisplayAlerts = False
    ActiveWorkbook.Close
  Application.DisplayAlerts = True

'ファイルの保存終了***************************************************

</pre></div>


<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/create-and-save-serial-numbers/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】列の英語→数字に変換する方法</title>
		<link>https://nujonoa.com/vba-convert-english-to-numbers/</link>
					<comments>https://nujonoa.com/vba-convert-english-to-numbers/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Fri, 29 Jan 2021 14:12:49 +0000</pubDate>
				<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[vba]]></category>
		<category><![CDATA[列]]></category>
		<category><![CDATA[アルファベット]]></category>
		<category><![CDATA[数字]]></category>
		<guid isPermaLink="false">http://nujonoa.com/?p=8707</guid>

					<description><![CDATA[VBAでプログラムを組んでいると、正直R1C1表記で行きたいところが、自分以外でも使うことを考えて、そのままの設定で行くことが多いです。 そんな時に困るのが、列の英語(アルファベット)と数字の対比です。 今回はそんな列の [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>VBAでプログラムを組んでいると、正直R1C1表記で行きたいところが、<br>自分以外でも使うことを考えて、そのままの設定で行くことが多いです。</p>



<p>そんな時に困るのが、列の英語(アルファベット)と数字の対比です。</p>



<p>今回はそんな列の英語を数字にする方法を紹介していきたいと思います。</p>




  <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】列の英語(アルファベット)⇒数字に変換する方法</a></li><li><a href="#toc2" tabindex="0">プログラムの説明</a></li><li><a href="#toc3" tabindex="0">≪参考≫数字→アルファベット</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">【VBA】列の英語(アルファベット)⇒数字に変換する方法</span></h2>



<p>列の英語を数字に変換する方法は、<br>下記のとおりです。※ダブルクリックしてコピーできます。</p>


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

'英語→数字に変換
    RETU = InputBox(&quot;列名(英語)を入力&quot;, , &quot;AU&quot;)
    RETUN = Cells(1, RETU).Column
    MsgBox RETUN
'&lt;参考&gt;数字→英語に変換
    Dim RETU2 As Integer
    RETU2 = InputBox(&quot;数字を入力&quot;, , &quot;95&quot;)
    RETUN2 = Cells(2, RETU2).Address(ColumnAbsolute:=False)
    RETUN2 = Left(RETUN2, InStr(RETUN2, &quot;$&quot;) - 1)
    MsgBox RETUN2

End Sub
</pre></div>


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



<p>実は、CELLSの使い方として</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
Cells(1, &quot;C&quot;)
</pre></div>


<p>と表記すると、セル「C1」を選択することが可能です。<br>こんな使い方をする人は少ないので知られていませんが。。</p>



<p>ですので、セルの.Columnと組み合わせて、</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
Cells(1, &quot;C&quot;).Column
</pre></div>


<p>で、セルの英語を数字に変換することが可能です。</p>



<p>charなどを用いる方法がありますが、これが一番簡単だと思います。</p>



<h2 class="wp-block-heading"><span id="toc3">≪参考≫数字→アルファベット</span></h2>



<p>参考までに数字→アルファベットに変換する方法は、</p>



<p>.Address(ColumnAbsolute:=False)</p>



<p>を用いて、セルのアドレスを「CA$1」で表し、</p>



<p>「InStr("CA$1", "$")」で$を検索。その前までの英語を取り出します。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/vba-convert-english-to-numbers/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】msgboxで3択を行うには？コピペで簡単。</title>
		<link>https://nujonoa.com/how-to-make-3-choices-in-msgbox/</link>
					<comments>https://nujonoa.com/how-to-make-3-choices-in-msgbox/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Thu, 28 Jan 2021 12:58:03 +0000</pubDate>
				<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[vba]]></category>
		<category><![CDATA[msgBOX]]></category>
		<category><![CDATA[質問]]></category>
		<category><![CDATA[分岐]]></category>
		<guid isPermaLink="false">http://nujonoa.com/?p=8693</guid>

					<description><![CDATA[msgboxでの3択の使い方の例を記載しました！参考にしてください！！ 目次 【VBA】msgboxで3択を行うには？コピペで簡単。プログラム説明 【VBA】msgboxで3択を行うには？コピペで簡単。 msgboxで3 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>msgboxでの3択の使い方の例を記載しました！<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">【VBA】msgboxで3択を行うには？コピペで簡単。</a></li><li><a href="#toc2" tabindex="0">プログラム説明</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">【VBA】msgboxで3択を行うには？コピペで簡単。</span></h2>



<p>msgboxで3択をする方法です。<br>※ダブルクリックでコピーできます。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
SUB 3TAKU()
flag = 0

flag = MsgBox(&quot;○○なら→はい&quot; &amp; vbCrLf &amp; &quot;△△なら→いいえ&quot; &amp; vbCrLf &amp; &quot;□□なら→キャンセル&quot;, 3 + 32) '16:警告 32:問い合わせ 48:注意 64:情報
If flag = 6 Then
    MsgBox &quot;処理1&quot;
ElseIf flag = 7 Then
    MsgBox &quot;処理2&quot;
ElseIf flag = 2 Then
    MsgBox &quot;処理3&quot;
End If

END SUB
</pre></div>


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



<p>msgboxで綺麗に三択を行う方法は、<span class="marker-animation-2071">残念ながらありません。</span><br>本当は回答を決めれたらいいのですが、、、</p>



<p>そのため、msgboxで3択を行うためには、</p>



<div class="wp-block-group is-style-sticky-gray"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<p>msgbox("○○なら→はい" &amp; vbCrLf &amp; "△△なら→いいえ" &amp; vbCrLf &amp; "□□なら→キャンセル", 3)</p>



<p></p>
</div></div>



<p>を用いて、yes, no, キャンセルで分岐させることをお勧めします。<br>少々質問文が長くなりますが、これで十分役目は果たせます。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/how-to-make-3-choices-in-msgbox/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【VBA】質問、分岐付きmsgbox、コピペで簡単。</title>
		<link>https://nujonoa.com/how-to-use-msgbox/</link>
					<comments>https://nujonoa.com/how-to-use-msgbox/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Thu, 28 Jan 2021 12:50:34 +0000</pubDate>
				<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[vba]]></category>
		<category><![CDATA[msgBOX]]></category>
		<category><![CDATA[質問]]></category>
		<category><![CDATA[分岐]]></category>
		<guid isPermaLink="false">http://nujonoa.com/?p=8680</guid>

					<description><![CDATA[よく使うけど忘れる。。msgboxの使い方をまとめました。 目次 【VBA】質問付きmsgbox、コピペで簡単。プログラム説明2択のメッセージ3択のメッセージただのメッセージ'番外編　INPUTボックス 【VBA】質問付 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>よく使うけど忘れる。。msgboxの使い方をまとめました。</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】質問付きmsgbox、コピペで簡単。</a></li><li><a href="#toc2" tabindex="0">プログラム説明</a><ol><li><a href="#toc3" tabindex="0">2択のメッセージ</a></li><li><a href="#toc4" tabindex="0">3択のメッセージ</a></li><li><a href="#toc5" tabindex="0">ただのメッセージ</a></li><li><a href="#toc6" tabindex="0">'番外編　INPUTボックス</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">【VBA】質問付きmsgbox、コピペで簡単。</span></h2>



<p>質問、分岐付きのmsgboxのコード一覧です。<br>※ダブルクリックでコピーできます。</p>


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

    Dim flag As Integer


' vbOKOnly    0   &#x5B;OK]ボタンのみを表示します

    MsgBox (&quot;AA&quot;)
    
'vbOKCancel  1   &#x5B;OK]ボタンと&#x5B;キャンセル]ボタンを表示します

    flag = 0
    
    flag = MsgBox(&quot;OK&quot; &amp; vbCrLf &amp; &quot;キャンセル?&quot;, 1 + 32) '16:警告 32:問い合わせ 48:注意 64:情報
    If flag = 1 Then
        MsgBox &quot;OK&quot;
    ElseIf flag = 2 Then
        MsgBox &quot;キャンセル&quot;
    End If
    

    

'vbAbortRetryIgnore  2   &#x5B;中止]、&#x5B;再試行]、および&#x5B;無視]の３つのボタンを表示します

    flag = 0
    
    flag = MsgBox(&quot;中止&quot; &amp; vbCrLf &amp; &quot;再試行&quot; &amp; vbCrLf &amp; &quot;無視&quot;, 2 + 32) '16:警告 32:問い合わせ 48:注意 64:情報
    If flag = 3 Then
        MsgBox &quot;中止&quot;
    ElseIf flag = 4 Then
        MsgBox &quot;再試行&quot;
    ElseIf flag = 5 Then
        MsgBox &quot;無視&quot;
    End If


'vbYesNoCancel   3   &#x5B;はい]、&#x5B;いいえ]、および&#x5B;キャンセル]の３つのボタンを表示します

    flag = 0
    
    flag = MsgBox(&quot;はい&quot; &amp; vbCrLf &amp; &quot;いいえ&quot; &amp; vbCrLf &amp; &quot;キャンセル&quot;, 3 + 32) '16:警告 32:問い合わせ 48:注意 64:情報
    If flag = 6 Then
        MsgBox &quot;はい&quot;
    ElseIf flag = 7 Then
        MsgBox &quot;いいえ&quot;
    ElseIf flag = 2 Then
        MsgBox &quot;キャンセル&quot;
    End If

'vbYesNo 4   &#x5B;はい]ボタンと&#x5B;いいえ]ボタンを表示します

    flag = 0
    
    flag = MsgBox(&quot;はい&quot; &amp; vbCrLf &amp; &quot;いいえ&quot;, 4 + 64) '16:警告 32:問い合わせ 48:注意 64:情報
    If flag = 6 Then
        MsgBox &quot;はい&quot;
    ElseIf flag = 7 Then
        MsgBox &quot;いいえ&quot;
    End If




'vbRetryCancel   5   &#x5B;再試行]ボタンと&#x5B;キャンセル]ボタンを表示します

    flag = 0
    
    flag = MsgBox(&quot;再試行&quot; &amp; vbCrLf &amp; &quot;キャンセル&quot;, 5 + 48) '16:警告 32:問い合わせ 48:注意 64:情報
    If flag = 4 Then
        MsgBox &quot;再試行&quot;
    ElseIf flag = 2 Then
        MsgBox &quot;キャンセル&quot;
    End If


'番外編　INPUTボックス
MOJI = InputBox(&quot;質問はここ&quot;, &quot;タイトルはここ&quot;, &quot;デフォルトの数字はここ&quot;)


    
End Sub

</pre></div>


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



<p>msgboxには、色々な種類があり、判断に迷いますが、<br>①ただのメッセージ<br>②2択の質問<br>③3択の質問<br>に分けられます。</p>



<p>また、ここで厄介なのが、<br>質問が2択であれば、返り値は1，2でいいのに、それぞれの値を持っています。</p>



<p>これに限っては、コピペに限ります。<br>是非下のコードをお使いください。</p>



<h3 class="wp-block-heading"><span id="toc3">2択のメッセージ</span></h3>



<p>'vbOKCancel 1 [OK]ボタンと[キャンセル]ボタンを表示します</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
flag = 0

flag = MsgBox(&quot;OK&quot; &amp; vbCrLf &amp; &quot;キャンセル?&quot;, 1 + 32) '16:警告 32:問い合わせ 48:注意 64:情報
If flag = 1 Then
    MsgBox &quot;OK&quot;
ElseIf flag = 2 Then
    MsgBox &quot;キャンセル&quot;
End If
</pre></div>


<p>'vbYesNo 4 [はい]ボタンと[いいえ]ボタンを表示します</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
flag = 0

flag = MsgBox(&quot;はい&quot; &amp; vbCrLf &amp; &quot;いいえ&quot;, 4 + 64) '16:警告 32:問い合わせ 48:注意 64:情報
If flag = 6 Then
    MsgBox &quot;はい&quot;
ElseIf flag = 7 Then
    MsgBox &quot;いいえ&quot;
End If
</pre></div>


<p>'vbRetryCancel 5 [再試行]ボタンと[キャンセル]ボタンを表示します</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
flag = 0

flag = MsgBox(&quot;再試行&quot; &amp; vbCrLf &amp; &quot;キャンセル&quot;, 5 + 48) '16:警告 32:問い合わせ 48:注意 64:情報
If flag = 4 Then
    MsgBox &quot;再試行&quot;
ElseIf flag = 2 Then
    MsgBox &quot;キャンセル&quot;
End If
</pre></div>


<h3 class="wp-block-heading"><span id="toc4">3択のメッセージ</span></h3>



<p>'vbAbortRetryIgnore 2 [中止]、[再試行]、および[無視]の３つのボタンを表示します</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
flag = 0

flag = MsgBox(&quot;中止&quot; &amp; vbCrLf &amp; &quot;再試行&quot; &amp; vbCrLf &amp; &quot;無視&quot;, 2 + 32) '16:警告 32:問い合わせ 48:注意 64:情報
If flag = 3 Then
    MsgBox &quot;中止&quot;
ElseIf flag = 4 Then
    MsgBox &quot;再試行&quot;
ElseIf flag = 5 Then
    MsgBox &quot;無視&quot;
End If
</pre></div>


<p>'vbYesNoCancel 3 [はい]、[いいえ]、および[キャンセル]の３つのボタンを表示します</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
flag = 0

flag = MsgBox(&quot;はい&quot; &amp; vbCrLf &amp; &quot;いいえ&quot; &amp; vbCrLf &amp; &quot;キャンセル&quot;, 3 + 32) '16:警告 32:問い合わせ 48:注意 64:情報
If flag = 6 Then
    MsgBox &quot;はい&quot;
ElseIf flag = 7 Then
    MsgBox &quot;いいえ&quot;
ElseIf flag = 2 Then
    MsgBox &quot;キャンセル&quot;
End If
</pre></div>


<h3 class="wp-block-heading"><span id="toc5">ただのメッセージ</span></h3>



<p>' vbOKOnly 0 [OK]ボタンのみを表示します</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
MsgBox (&quot;AA&quot;)
</pre></div>


<h3 class="wp-block-heading"><span id="toc6">'番外編　INPUTボックス</span></h3>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
MOJI = InputBox(&quot;質問はここ&quot;, &quot;タイトルはここ&quot;, &quot;デフォルトの数字はここ&quot;)
</pre></div>]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/how-to-use-msgbox/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[メニュー]]></category>
		<category><![CDATA[マクロ]]></category>
		<category><![CDATA[vba]]></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-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】右クリックのメニューにマクロを追加する方法</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[vba]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[表示]]></category>
		<category><![CDATA[簡単]]></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-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でページ内の商品情報(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 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/how-to-retrieve-all-product-information/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
