<?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>インクリメント アーカイブ - nyanblog ~にゃんぶろぐ~</title>
	<atom:link href="https://nyanblog2222.com/tag/%E3%82%A4%E3%83%B3%E3%82%AF%E3%83%AA%E3%83%A1%E3%83%B3%E3%83%88/feed/" rel="self" type="application/rss+xml" />
	<link>https://nyanblog2222.com/tag/インクリメント/</link>
	<description>ちょっとしたことを調べているよ</description>
	<lastBuildDate>Fri, 03 Sep 2021 13:15:01 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7</generator>

<image>
	<url>https://nyanblog2222.com/wp-content/uploads/2021/09/cropped-favicon-32x32.png</url>
	<title>インクリメント アーカイブ - nyanblog ~にゃんぶろぐ~</title>
	<link>https://nyanblog2222.com/tag/インクリメント/</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/><atom:link rel="hub" href="https://websubhub.com/hub"/>	<item>
		<title>【VBA】インクリメントやデクリメントは使える？代替案は？</title>
		<link>https://nyanblog2222.com/programming/vba/2261/</link>
					<comments>https://nyanblog2222.com/programming/vba/2261/#respond</comments>
		
		<dc:creator><![CDATA[nyan2222]]></dc:creator>
		<pubDate>Sat, 05 Sep 2020 09:00:00 +0000</pubDate>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[インクリメント]]></category>
		<category><![CDATA[デクリメント]]></category>
		<guid isPermaLink="false">https://nyanblog2222.com/?p=2261</guid>

					<description><![CDATA[<p><img src="https://nyanblog2222.com/wp-content/uploads/2022/11/34.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" fetchpriority="high" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/34.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/34-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/34-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/34-768x402.png 768w" sizes="(max-width: 1280px) 100vw, 1280px" />C言語やJAVAなどで欠かせないインクリメントやデクリメントですが、ExcelやAccessなどで使用するVBAでも使えるか、調べてみました。 ・インクリメント変数の値を1増やす演算　例：i++、++i・デクリメント変数 [&#8230;]</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/vba/2261/">【VBA】インクリメントやデクリメントは使える？代替案は？</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<img src="https://nyanblog2222.com/wp-content/uploads/2022/11/34.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" srcset="https://nyanblog2222.com/wp-content/uploads/2022/11/34.png 1280w, https://nyanblog2222.com/wp-content/uploads/2022/11/34-300x157.png 300w, https://nyanblog2222.com/wp-content/uploads/2022/11/34-1024x536.png 1024w, https://nyanblog2222.com/wp-content/uploads/2022/11/34-768x402.png 768w" sizes="(max-width: 1280px) 100vw, 1280px" />
<p>C言語やJAVAなどで欠かせないインクリメントやデクリメントですが、ExcelやAccessなどで使用するVBAでも使えるか、調べてみました。</p>



<p><strong><span style="color:#b78d4a" class="has-inline-color">・インクリメント</span></strong><br>変数の値を1増やす演算　例：i++、++i<br><strong><span style="color:#b78d4a" class="has-inline-color">・デクリメント</span></strong><br>変数の値を1減らす演算　例：i－－、－－i</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">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">関数を作ってみるのは？</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">VBAでインクリメントやデクリメントは使えない？</span></h2>



<p><strong><span style="color:#b78d4a" class="has-inline-color">VBAにはインクリメントやデクリメントという概念がなく、使えません。</span></strong></p>



<p>試しに、i++やi－－と書くと以下のエラーメッセージが出ます。</p>



<pre class="wp-block-code"><code>コンパイルエラー:

修正候補:式</code></pre>



<p>++iやi－－と書くと以下のエラーメッセージが出ます。</p>



<pre class="wp-block-code"><code>コンパイル　エラー:

修正候補: 行番号 または 行ラベル または ステートメント または ステートメントの最後</code></pre>



<p>VBAでインクリメントやデクリメントが使えない理由としては、<br><strong><span style="color:#b78d4a" class="has-inline-color">VBA（Visual Basic for Applications）はBASICというプログラミング言語がルーツ</span></strong>なので、インクリメントやデクリメントが存在するC言語がルーツのプログラミング言語とは、<strong><span style="color:#b78d4a" class="has-inline-color">歴史が異なる</span></strong>からです。</p>



<figure class="wp-block-table"><table><tbody><tr><td>参考：VBA（Visual Basic for Applications）年表<br><br>(1964) BASIC<br>　　　↓<br>(1985) QuickBASIC<br>　　　↓<br>(1991) Microsoft Visual Basic<br>　　　↓<br>(1993) Visual Basic for Applications</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc2">代替案について</span></h2>



<p>気になる<strong><span style="color:#b78d4a" class="has-inline-color">代替案ですが、残念ながら有効なものはありません</span></strong>でした。</p>



<h3 class="wp-block-heading"><span id="toc3">加算代入演算子や減算代入演算子は？</span></h3>



<p>試してみましたが、インクリメントやデクリメントと似たことができる<strong><span style="color:#b78d4a" class="has-inline-color">加算代入演算子や減算代入演算子ではうまくいきませんでした。</span></strong></p>



<p>（参考）<br>・加算代入演算子<br>変数の値に右辺の値を加算する演算　例：i+=1<br>・減算代入演算子<br>変数の値に右辺の値を減算する演算　例：i-=1</p>



<p>以下、エラーメッセージです。</p>



<pre class="wp-block-code"><code>コンパイルエラー:

修正候補:式</code></pre>



<p>インクリメントやデクリメントと同様に、C言語がルーツのプログラミング言語で使用できる加算代入演算子や減算代入演算子についても、概念がないようですね。</p>



<h3 class="wp-block-heading"><span id="toc4">関数を作ってみるのは？</span></h3>



<p>無理やり捻りだすとするのであらば、<strong><span style="color:#b78d4a" class="has-inline-color">インクリメントやデクリメントする関数を作る</span></strong>のはどうでしょう。</p>



<p>例えば、以下の関数「Increment(ByRef)」でインクリメントできます。</p>



<pre class="wp-block-code basic"><code>'呼び出し元の関数
Public Function TestIncrement()
　Dim i As Int
　i = 0
　～
　Increment i
　～
End Function</code></pre>



<pre class="wp-block-code basic"><code>'インクリメント用関数
Sub Increment(ByRef i)
　i = i + 1
End Sub</code></pre>



<p>ただこれははっきり言ってしまえば、自己満足なコードです。<br>あまり分かりやすくなったとは言いづらいですし、作った本人はいいでしょうが、<strong><span style="color:#b78d4a" class="has-inline-color">他の人がコードを見たとき読みにくいコードに</span></strong>なるでしょうね。。</p>



<p>以上、今回はインクリメントやデクリメントがVBAでも使えるか、また代替案は何かないか調べてみました。<br>以下がそのまとめです。</p>



<figure class="wp-block-table"><table><tbody><tr><td>・VBAにインクリメントやデクリメントという概念はない<br>・代替案で有効なものもないため、<br>　　i = i + 1<br>　という一般的な書き方をするのが良い</td></tr></tbody></table></figure>



<p>そもそもVBAのルーツであるBASICはあくまで初心者向けの言語のため、いくらインクリメントやデクリメントが分かりやすく効率的だからといって、現状でもi = i + 1と1行で処理できるのですから、これ以上知識が必要となる機能追加は望まれないのかもしれませんね。</p>
<p>投稿 <a href="https://nyanblog2222.com/programming/vba/2261/">【VBA】インクリメントやデクリメントは使える？代替案は？</a> は <a href="https://nyanblog2222.com">nyanblog ~にゃんぶろぐ~</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nyanblog2222.com/programming/vba/2261/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
