<?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>セルの操作 &#8211; とりっぷぼうる</title>
	<atom:link href="https://tripbowl.net/tag/%E3%82%BB%E3%83%AB%E3%81%AE%E6%93%8D%E4%BD%9C/feed/" rel="self" type="application/rss+xml" />
	<link>https://tripbowl.net</link>
	<description>観光地にはお得なフリーパスあり</description>
	<lastBuildDate>Tue, 01 Aug 2023 11:22:38 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.1</generator>

<image>
	<url>https://tripbowl.net/wp-content/uploads/2021/09/cropped-9363d75a338bc1796f4d8b21a4a8670f-32x32.jpg</url>
	<title>セルの操作 &#8211; とりっぷぼうる</title>
	<link>https://tripbowl.net</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>日付選んで番号選択すると指定したセルに移動させる方法</title>
		<link>https://tripbowl.net/vba-selectcase-try/</link>
		
		<dc:creator><![CDATA[とりっぷぼうる]]></dc:creator>
		<pubDate>Sat, 25 Aug 2018 11:10:35 +0000</pubDate>
				<category><![CDATA[エクセル]]></category>
		<category><![CDATA[セルの操作]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[ユーザーフォーム]]></category>
		<category><![CDATA[画面の操作]]></category>
		<guid isPermaLink="false">https://tripbowl.net/?p=969</guid>

					<description><![CDATA[<p><img src="https://tripbowl.net/wp-content/uploads/2018/08/efa29574f54c6a12d8e57a0e52ea5592.jpg" class="webfeedsFeaturedVisual" /></p>ユーザーフォームを使っていると便利な反面、フォームの数が増えすぎて困ったことありませんか？ 同じフォームなのに用途が微妙に違うので、やむを得ず複数作成して使っているとか。 ボウリングのリーグ戦での成績入力でも、スコアー入 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://tripbowl.net/wp-content/uploads/2018/08/efa29574f54c6a12d8e57a0e52ea5592.jpg" class="webfeedsFeaturedVisual" /></p><p>ユーザーフォームを使っていると便利な反面、フォームの数が増えすぎて困ったことありませんか<span style="font-size: 24px; color: #ff0000;">？</span></p>
<p>同じフォームなのに用途が微妙に違うので、やむを得ず複数作成して使っているとか。</p>
<p>ボウリングのリーグ戦での成績入力でも、スコアー入力する日付は全選手一緒だけど、個人別の入力は当然ながらスコアーが混じってはいけないので一緒にできない。</p>
<p>だからと言って入力フォームを参加選手分同じものを作るのも面倒で大変で非効率。</p>
<p>Select Caseを使ってみたら意外と出来たぞ！</p>
<h2>Select Caseの2段重ね</h2>
<p>やりたいことは、こんな感じ。</p>
<ol>
<li>日付を選択すると各参加選手それぞれの個人成績表で日付と同じセルを選択させる。</li>
<li>次にスコアーを入力したい選手（会員番号）を選択すると、指定された選手の個人成績表に移動する</li>
<li>入力が終わると、次に入力する選手を選択するフォームに戻る</li>
<li>繰り返す</li>
</ol>
<p>これを簡単にVBAコードで書くと、</p>
<p>最初の日付選択がひとつ目の条件なので、Select Caseを使います。</p>
<p>1回目の日付を「１」、2回目の日付を「２」・・・とすると、</p>
<div class="blank-box bb-yellow">Select Case<br />
Case Is =1<br />
指定した日付のセル番号<br />
Case Is = 2<br />
指定した日付のセル番号<br />
Case Is = 3<br />
指定した日付のセル番号<br />
End Select</div>
<p>と、なりますが、2つ目の条件を加えると、ひとつ目の条件で日付を選び、尚且つ2つ目の条件で選手番号を指定するので、<br />
Case Is =1 の次にもう一度Select Caseを加えます。</p>
<p>そうすると、</p>
<div class="blank-box bb-yellow"><span class="marker">Select Case Range(&#8220;AA1&#8221;).Value</span><br />
<span class="marker">Case Is = 1</span><br />
<span class="marker">指定した1番目の日付のセル番号</span><br />
Select Case Range(&#8220;AO1&#8221;).Value<br />
Case Is = 1<br />
指定した会員番号のセル番号<br />
Case Is = 2<br />
指定した会員番号のセル番号<br />
Case Is = 3<br />
指定した会員番号のセル番号<br />
End Select<br />
Case Is = 2<br />
指定した2番目のひづけのセル番号<br />
Select Case Range(&#8220;AO1&#8221;).Value<br />
Case Is = 1<br />
指定した会員番号のセル番号<br />
Case Is = 2<br />
指定した会員番号のセル番号<br />
Case Is = 3<br />
指定した会員番号のセル番号<br />
End Select<br />
Case Is = 2<br />
指定した3番目のひづけのセル番号<br />
Select Case Range(&#8220;AO1&#8221;).Value<br />
Case Is = 1<br />
指定した会員番号のセル番号<br />
Case Is = 2<br />
指定した会員番号のセル番号<br />
Case Is = 3<br />
指定した会員番号のセル番号<br />
End select<br />
<span class="marker">End Select</span></div>
<p>となります。黄色い最初のSelect Caseの中にもう1回Select Caseを挟み込んだら完成です。</p>
<p><img decoding="async" class="aligncenter size-full wp-image-518" src="https://tripbowl.net/wp-content/uploads/2018/07/bc7c6c78ce772db93da39e619320f19e.jpg" alt="ボウリングリーグ戦MENU～LTB編" width="643" height="405" srcset="https://tripbowl.net/wp-content/uploads/2018/07/bc7c6c78ce772db93da39e619320f19e.jpg 643w, https://tripbowl.net/wp-content/uploads/2018/07/bc7c6c78ce772db93da39e619320f19e-300x189.jpg 300w" sizes="(max-width: 643px) 100vw, 643px" /></p>
<p>これができたおかげで、ボウリングのリーグ戦での参加者の成績を入力するのに、回戦数を入力して、選手選択ボタンを押すと、</p>
<p><img decoding="async" class="aligncenter size-full wp-image-135" src="https://tripbowl.net/wp-content/uploads/2018/07/6c7fd6972c7fb5c8af7e3fb8e4beefc7.jpg" alt="" width="399" height="217" srcset="https://tripbowl.net/wp-content/uploads/2018/07/6c7fd6972c7fb5c8af7e3fb8e4beefc7.jpg 399w, https://tripbowl.net/wp-content/uploads/2018/07/6c7fd6972c7fb5c8af7e3fb8e4beefc7-300x163.jpg 300w" sizes="(max-width: 399px) 100vw, 399px" /></p>
<p>この画面が表示されて会員番号を入力して、選択ボタンを押せば、個人のスコアー入力セルに一気に移動します。</p>
<p>そして、入力すべく日付のセル（行）にカーソルが指定されているので、マウスでいちいちセルを選択する必要がなくなり、誤って他の日付の欄に誤記入することもなくなりました。</p>
<p><img decoding="async" class="aligncenter size-full wp-image-131" src="https://tripbowl.net/wp-content/uploads/2018/07/3f26af44bdf1a42437738e6b890d96ca.jpg" alt="" width="800" height="469" srcset="https://tripbowl.net/wp-content/uploads/2018/07/3f26af44bdf1a42437738e6b890d96ca.jpg 800w, https://tripbowl.net/wp-content/uploads/2018/07/3f26af44bdf1a42437738e6b890d96ca-300x176.jpg 300w, https://tripbowl.net/wp-content/uploads/2018/07/3f26af44bdf1a42437738e6b890d96ca-768x450.jpg 768w" sizes="(max-width: 800px) 100vw, 800px" /></p>
<div class="good-box common-icon-box">チョットしたことだけど使い勝手が良くなりました！</div>
<p>[temp id=19]</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>複数のセルの値を別のセルにコピーする</title>
		<link>https://tripbowl.net/vba-cell-all-transfer-cell/</link>
		
		<dc:creator><![CDATA[とりっぷぼうる]]></dc:creator>
		<pubDate>Sun, 15 Jul 2018 04:05:36 +0000</pubDate>
				<category><![CDATA[セルの操作]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://tripbowl.net/?p=251</guid>

					<description><![CDATA[<p><img src="https://tripbowl.net/wp-content/uploads/2018/07/dd602cc3ad661468500647e7850ddf83.jpg" class="webfeedsFeaturedVisual" /></p>VLOOKUPでは数式の値は検索不能？ ボウリングのリーグ戦の成績表をエクセルで作っていて、リーグ戦では一般的に初回はレーン抽選によって対戦相手が決まり、2週目以降は対戦表に従って総当たり戦を行います。 波乗りアヒル レ [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://tripbowl.net/wp-content/uploads/2018/07/dd602cc3ad661468500647e7850ddf83.jpg" class="webfeedsFeaturedVisual" /></p><h2>VLOOKUPでは数式の値は検索不能？</h2>
<p>ボウリングのリーグ戦の成績表をエクセルで作っていて、リーグ戦では一般的に初回はレーン抽選によって対戦相手が決まり、2週目以降は対戦表に従って総当たり戦を行います。</p>
<div class="speech-wrap sb-id-16 sbs-flat sbp-l sbis-cb cf">
<div class="speech-person">
<figure class="speech-icon"></figure>
<div class="speech-name">波乗りアヒル</div>
</div>
<div class="speech-balloon">
<p>レーン抽選したら番号入れたら成績表から個人データを読み取ってレコードシートすぐに印刷できないものかな？</p>
</div>
</div>
<p>エクセルで作っているリーグ成績表スタンディングに、ボウリングレーン抽選機能を付け加えるまでは、初回リーグ戦が終わった後にエクセルで作っている成績表に抽選番号順に選手登録をして、同時に初回の成績を入力していました。</p>
<p>「ボウリングレーン抽選機能」って勝手に読んでいますが、これができたことにより、あらかじめ選手登録をエクセルに入力しておいて、当日レーン抽選を行って練習ボールをしている間に、レーン番号を入力するだけで勝手に並び変わってレコードシートが印刷されるのです。</p>
<div class="speech-wrap sb-id-17 sbs-line sbp-r sbis-cb cf">
<div class="speech-person">
<figure class="speech-icon"></figure>
</div>
<div class="speech-balloon">
<p>ボウリングASで入力している感覚ね</p>
</div>
</div>
<p>この「ボウリングレーン抽選機能」を既存のエクセルに付け加えるのは、非常に難しい。</p>
<p>なぜなら、レーン抽選によりエクセルでの選手登録順が並び変わる事が当然発生するのです。</p>
<p>その辺の話はまた別の機会に書くとして、レーン抽選をするにあたって検索に使うエクセル関数のVLOOKUP関数を使うのですが、検査値が計算式で求められた数値だと（見た目）エラー【#N/A】になっちゃいました。</p>
<p>直接数字を入力すると、正しくVLOKUP関数が働いてくれて検索してくれました。</p>
<p>そこで、レーンと投球順を表すセルを値だけにしてコピーすれば解決できるので、エクセルVBAで複数のセルの値を別の複数のセルへコピーというか、値を転記するって事をしました。</p>
<h3>VBAでセルを別のセルへ転記方法</h3>
<p>普段使いませんが、基本です。</p>
<p><img decoding="async" class="aligncenter size-full wp-image-252" src="https://tripbowl.net/wp-content/uploads/2018/07/63b2a0d84064160006aed26569d518b1.jpg" alt="VLOOKUP検査値が数式" width="800" height="279" srcset="https://tripbowl.net/wp-content/uploads/2018/07/63b2a0d84064160006aed26569d518b1.jpg 800w, https://tripbowl.net/wp-content/uploads/2018/07/63b2a0d84064160006aed26569d518b1-300x105.jpg 300w, https://tripbowl.net/wp-content/uploads/2018/07/63b2a0d84064160006aed26569d518b1-768x268.jpg 768w" sizes="(max-width: 800px) 100vw, 800px" /></p>
<p>この図は、実際にボウリング成績表でレーン抽選機能の一部のワークシートですが、セルBD103の値をセルAX103に値だけコピー（転記）するVBAコードは、シンプルです。</p>
<div class="blank-box bb-tab bb-point bb-blue success-box">Private Sub CommandButton1_Click()<br />
Range(&#8220;AX103&#8221;).Value = Range(&#8220;BD103&#8221;).Value<br />
End Sub</div>
<div class="blank-box bb-yellow">
<ol>
<li>「コマンドボタン１をクリックしたら実行する」というマクロの記述を開始</li>
<li>セルAX103の値はセルBD103の値にする</li>
<li>マクロの記述終了</li>
</ol>
</div>
<p>とてもシンプルで簡単ですね。</p>
<p>これで数式の入っている値も単なる数字になって転記されます。</p>
<h3>VBAで2つのセルを別の2つのセルへ転記方法</h3>
<p>こんどは2つの場合です。</p>
<p>セルBD103の値をセルAX103に、セルBD104の値をセルAX104に、値だけコピー（転記）するVBAコードです。</p>
<div class="blank-box bb-tab bb-point bb-blue success-box">Private Sub CommandButton1_Click()<br />
Range(&#8220;AX103&#8221;).Value = Range(&#8220;BD103&#8221;).Value<br />
Range(&#8220;AX104&#8221;).Value = Range(&#8220;BD104&#8221;).Value<br />
End Sub</div>
<div class="blank-box bb-yellow">
<ol>
<li>「コマンドボタン１をクリックしたら実行する」というマクロの記述を開始</li>
<li>セルAX103の値はセルBD103の値にする</li>
<li>セルAX103の値はセルBD103の値にする</li>
<li>マクロの記述終了</li>
</ol>
</div>
<p>2つ並べるだけなので簡単ですね。</p>
<h3>3つ以上の複数のセルの値を連続して転記する</h3>
<p>先ほどの図のようにここでは選手は最大40名までで作っているので、コピーするのは40回。</p>
<p>VBAでひとつのセルの値を別のセルに転記する方法で40回続けて書くも良し、ただ面倒なので、指定した回数繰り返し処理を行ってくれるFor～Nextステートメントを使いましょう。</p>
<p>書き写したいセルは、BD103～BD142の値をAX103～AX42へそれぞれ転記します。</p>
<div class="blank-box bb-tab bb-point bb-blue success-box">Private Sub CommandButton1_Click()<br />
For i = 103 To 142<br />
Cells(i, 50).Value = Cells(i, 56).Value<br />
Next i<br />
End Sub</div>
<div class="blank-box bb-yellow">
<ol>
<li>「コマンドボタン１をクリックしたら実行する」というマクロの記述を開始</li>
<li>繰り返し処理の変数「i」を宣言し、変数「i」は103～142とする（転記したいセル行番号）</li>
<li>セル行番号iの50列目の値（AX列）はセル行番号iの56列目の値（BD列）を転記する</li>
<li>指定分（103～142）を繰り返して行う</li>
<li>マクロの記述終了</li>
</ol>
</div>
<div class="memo-box">こうすることで、計算された数式の表示された数字（文字列）が数字に置き換わるので、VLOOKUP関数が働くようになり、検査値として認識されます。</div>
<p>[temp id=19]</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>入力済み最終行を見つけて追記・削除する方法</title>
		<link>https://tripbowl.net/vba-end-xldown/</link>
		
		<dc:creator><![CDATA[とりっぷぼうる]]></dc:creator>
		<pubDate>Wed, 11 Jul 2018 18:12:36 +0000</pubDate>
				<category><![CDATA[セルの操作]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://tripbowl.net/?p=154</guid>

					<description><![CDATA[<p><img src="https://tripbowl.net/wp-content/uploads/2018/07/75a2d6269bd40f028784554bed538a69.jpg" class="webfeedsFeaturedVisual" /></p>エクセルVBAのユーザーフォームで一発検索する ボウリング場のリーグ戦成績表でも使っているエクセル。 エクセルには参加者のスコアーなど様々なデータを入力しますが、まず最初に行う作業が選手登録です。 当然ワークシートに直接 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://tripbowl.net/wp-content/uploads/2018/07/75a2d6269bd40f028784554bed538a69.jpg" class="webfeedsFeaturedVisual" /></p><h2>エクセルVBAのユーザーフォームで一発検索する</h2>
<p>ボウリング場のリーグ戦成績表でも使っているエクセル。</p>
<p>エクセルには参加者のスコアーなど様々なデータを入力しますが、まず最初に行う作業が選手登録です。</p>
<p>当然ワークシートに直接入力して、間違ったらクリアすればいいのですが、エクセルシートをわざわざクリックしてスクロールしたりするのが面倒で時間の無駄です。</p>
<p>そこで、オリジナル入力兼修正画面を作ってしまえば、見つける手間が省けて作業効率がアップします。</p>
<p>ここでは、「<a href="https://tripbowl.net/manual-member-ltb/">ボウリング成績表選手登録方法～LTB個人リーグ編</a>」でも使用している<span class="marker-blue">【入力取消】</span>ボタン（コマンドボタン）を押すと、自動的に選手登録済みデータの中（表）から一番最後に入力されたデータを見つけて入力済みデータをクリアしてくれるようにします。</p>
<p>https://tripbowl.net/manual-member-ltb/</p>
<p><img decoding="async" class="aligncenter size-full wp-image-102" src="https://tripbowl.net/wp-content/uploads/2018/07/fbceaeb70422a354842b273553b45530.jpg" alt="ラベル一括変換後" width="694" height="639" srcset="https://tripbowl.net/wp-content/uploads/2018/07/fbceaeb70422a354842b273553b45530.jpg 694w, https://tripbowl.net/wp-content/uploads/2018/07/fbceaeb70422a354842b273553b45530-300x276.jpg 300w" sizes="(max-width: 694px) 100vw, 694px" /></p>
<p>この図は<span class="marker-blue">【新規登録】</span>（コマンドボタン）を使って30名を登録した状態です。</p>
<p>登録方法のVBAコードに関しては、別のページで書いてありますのでこのページでは省略します。</p>
<p>https://tripbowl.net/vba-label-change/</p>
<p>また、入力済みデータの修正方法のVBAコードに関しても別のページで書いてありますので、これもここでは省略します。</p>
<p>https://tripbowl.net/vba-label-vlookup/</p>
<p>ここでは、普段の作業で参加者の書いてある紙を見ながらエクセルに新規登録している途中で、</p>
<p>ひとり飛ばして間違って入力してしまった時に、最後に入力した人を削除する方法です。</p>
<div class="success-box">コマンドボタンにEnd(xlDown)を使ったコードを書いて最終行の値をクリア</div>
<p><img decoding="async" class="aligncenter size-full wp-image-146" src="https://tripbowl.net/wp-content/uploads/2018/07/0bd6ff940b1baa834519b6f8ddc6fdca.jpg" alt="" width="542" height="420" srcset="https://tripbowl.net/wp-content/uploads/2018/07/0bd6ff940b1baa834519b6f8ddc6fdca.jpg 542w, https://tripbowl.net/wp-content/uploads/2018/07/0bd6ff940b1baa834519b6f8ddc6fdca-300x232.jpg 300w" sizes="(max-width: 542px) 100vw, 542px" /></p>
<p>画像スペースの都合で、１６行目まで（AA16まで）切り取って貼り付けています。実際は４２行目まであります。（AA42）</p>
<div class="comment-box">では実際に、入力取消ボタンにはこのようなコードが書いてあります。</div>
<div class="blank-box bb-tab bb-point bb-blue success-box">Private Sub CommandButton3_Click()<br />
msg = MsgBox(&#8220;最終入力選手を取消しますか？&#8221;, Buttons:=vbYesNo + vbQuestion)<br />
If msg = vbYes Then<br />
Range(&#8220;AB2&#8221;).End(xlDown).Value = &#8220;&#8221;<br />
Range(&#8220;AC2&#8221;).End(xlDown).Value = &#8220;&#8221;<br />
Range(&#8220;AD2&#8221;).End(xlDown).Value = &#8220;&#8221;<br />
Range(&#8220;AE2&#8221;).End(xlDown).Value = &#8220;&#8221;<br />
For i = 44 To 83<br />
With UserForm1.Controls(&#8220;Label&#8221; &amp; i)<br />
.Caption = Cells(i &#8211; 41, 29)<br />
End With<br />
Next i<br />
For j = 84 To 123<br />
With UserForm1.Controls(&#8220;Label&#8221; &amp; j)<br />
.Caption = Cells(j &#8211; 81, 31)<br />
End With<br />
Next j<br />
End If<br />
End Sub</div>
<div class="blank-box bb-yellow">
<ol>
<li>「コマンドボタン３をクリックしたら実行する」というマクロの記述を開始</li>
<li>メッセージで「最終入力選手を取り消しますか？」と表示して「はい」「いいえ」を選択させる</li>
<li>もし「はい」を選択したら</li>
<li>セルAB2（会員番号）の入力済み最終行の値を空欄にする</li>
<li>セルAC2（名前）の入力済み最終行の値を空欄にする</li>
<li>セルAD2（性別）の入力済み最終行の値を空欄にする</li>
<li>セルAE2（AVE）の入力済み最終行の値を空欄にする</li>
</ol>
</div>
<p>8行目以下はワークシートに入力されているセルの値を読み込んで、この画面に（選手登録ユーザーフォーム）表示するというコードですが、これも別のページで書いてありますので、ここでは省略します。</p>
<p>https://tripbowl.net/vba-label-vlookup/</p>
<p>これで、最終入力済みセルを見つけて空欄にすることができるようになります。</p>
<p>当然、<span class="marker-blue">【入力取消】</span>ボタンを押した回数分、次々と入力済み最終行が空欄になりますが、AB2のように2行目を指定しているので、全部消せたとしても3行目までで、2行目の「会員番号」自体は消せないようになっています。</p>
<div class="alert-box">消えたら困ります！</div>
<div class="blank-box bb-tab bb-hint bb-red">セルAB1としてしまうと、2行目の「会員番号」自体も消せるようになります！</div>
<p>[temp id=19]</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
