<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns="http://purl.org/rss/1.0/"
 xmlns:content="http://purl.org/rss/1.0/modules/content/"
 xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:syn="http://purl.org/rss/1.0/modules/syndication/"
 xmlns:admin="http://webns.net/mvcb/"
>
<channel rdf:about="http://exceljouho.livedoor.biz/">
<title>エクセル～ちょっとしたテクニック～</title>
<link>http://exceljouho.livedoor.biz/</link>
<description>エクセルの基本、小技等々、エクセルを十分活用するためにマクロ・ＶＢＡを含めたテクニックを随時紹介していきます。エクセル・マクロ・ＶＢＡで困った時の情報源になれば幸いです。





</description>
<dc:language>ja</dc:language>
<admin:generatorAgent rdf:resource="http://blog.livedoor.com/?v=2.0" />
<items>
 <rdf:Seq>
  <rdf:li rdf:resource="http://exceljouho.livedoor.biz/archives/51463750.html" />
  <rdf:li rdf:resource="http://exceljouho.livedoor.biz/archives/51144452.html" />
  <rdf:li rdf:resource="http://exceljouho.livedoor.biz/archives/51403898.html" />
  <rdf:li rdf:resource="http://exceljouho.livedoor.biz/archives/51403836.html" />
  <rdf:li rdf:resource="http://exceljouho.livedoor.biz/archives/51340600.html" />
  <rdf:li rdf:resource="http://exceljouho.livedoor.biz/archives/51397337.html" />
  <rdf:li rdf:resource="http://exceljouho.livedoor.biz/archives/51379844.html" />
  <rdf:li rdf:resource="http://exceljouho.livedoor.biz/archives/51341642.html" />
  <rdf:li rdf:resource="http://exceljouho.livedoor.biz/archives/51340589.html" />
  <rdf:li rdf:resource="http://exceljouho.livedoor.biz/archives/51367246.html" />
  <rdf:li rdf:resource="http://exceljouho.livedoor.biz/archives/51367231.html" />
  <rdf:li rdf:resource="http://exceljouho.livedoor.biz/archives/51340593.html" />
  <rdf:li rdf:resource="http://exceljouho.livedoor.biz/archives/51345352.html" />
  <rdf:li rdf:resource="http://exceljouho.livedoor.biz/archives/51345307.html" />
  <rdf:li rdf:resource="http://exceljouho.livedoor.biz/archives/51339336.html" />
 </rdf:Seq>
</items>
</channel>

<item rdf:about="http://exceljouho.livedoor.biz/archives/51463750.html">
<title>ランダムに数字を取得する＠エクセルマクロＶＢＡ</title>
<link>http://exceljouho.livedoor.biz/archives/51463750.html</link>
<description>エクセルのちょっとしたテクニックを紹介します。

Rnd関数を使用することで、自分が指定した範囲からランダムに数字を抽出することができます。
ＡとＢを整数とした場合、Ａ～Ｂの間の整数値をランダムに取得する場合、以下のような構文になります。

構文
Ｉｎｔ（（...</description>
<dc:creator>yas34mat</dc:creator>
<dc:date>2008-04-02T09:07:27+09:00</dc:date>
<dc:subject>エクセルマクロＶＢＡ：セルの操作</dc:subject>
<content:encoded><![CDATA[<strong><a href="http://exceljouho.livedoor.biz/" target="_blank">エクセルのちょっとしたテクニック</a></strong>を紹介します。<br>
<br>
Rnd関数を使用することで、自分が指定した範囲から<strong>ランダム</strong>に数字を抽出することができます。<br>
ＡとＢを整数とした場合、Ａ～Ｂの間の整数値をランダムに取得する場合、以下のような構文になります。<br>
<br>
構文<br>
<b><font size="2" color="ff0000">Ｉｎｔ（（Ｂ－Ａ＋１）＊Ｒｎｄ＋Ａ）</font></b><br>
<br>
次のサンプルを試してみてくださいね。<br>
５０から１００までの間の数字を、１行目から２０行目までに<strong>ランダム</strong>に取得します。<br>
<br>
'***************************************<br>
'乱数を取得する<br>
'***************************************<br>
Sub Test16()<br>
　　Dim i As Integer<br>
　　Randomize<br>
　　For i = 1 To 20<br>
　　　　Cells(i, 1).Value = Int((100 - 50 + 1) * Rnd + 50)<br>
　　Next i<br>
End Sub<br>
<br>
ちなみに、サンプル中のRandomizeステートメントは、乱数発生ルーチンの初期値を設定するステートメントです。<br>
<br>
☆<strong>エクセルＶＢＡ</strong>のおすすめ書籍⇒<a href="http://hb.afl.rakuten.co.jp/hgc/059ae33a.1f06248e.059ae33b.15cd95ec/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f4478495%2f&m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f12099476%2f" target="_blank">Excel VBA逆引き大全600の極意</a><br>
<br>
]]>
</content:encoded>
</item>
<item rdf:about="http://exceljouho.livedoor.biz/archives/51144452.html">
<title>複数のセルに一括入力＠エクセル</title>
<link>http://exceljouho.livedoor.biz/archives/51144452.html</link>
<description>エクセルのちょっとしたテクニックを紹介します。

複数のセルに同じ文字を入力する場合、セルのコピーをすることが考えられますが、もっと効率の良く、複数のセルに一括入力する方法があります。


（１）文字を入力したいセルを選択します。
（２）セルを選択した状...</description>
<dc:creator>yas34mat</dc:creator>
<dc:date>2008-04-02T01:40:56+09:00</dc:date>
<dc:subject>エクセル：セル関連の操作</dc:subject>
<content:encoded><![CDATA[<a href="http://exceljouho.livedoor.biz/" target="_blank">エクセルのちょっとしたテクニック</a>を紹介します。<br>
<br>
複数のセルに同じ文字を入力する場合、セルのコピーをすることが考えられますが、もっと効率の良く、<strong>複数のセルに一括入力</strong>する方法があります。<br>
<br>
<br>
（１）文字を入力したいセルを選択します。<br>
（２）セルを選択した状態のまま、文字を入力します。<br>
※このとき文字は変換の確定をし、<u><b>文字の後ろにカーソルが残っている状態</b></u>にしておきます。<br>
<br>
<br>
（３）入力を確定するときに、<b><font size="2" color="ff0000">[Ｃｔｒｌ]＋[Ｅｎｔｅｒ]</font></b>を押します。<br>
（４）これで選択したセルにすべて文字が入力されます。<br>
<br>
<br>
※複数のセルに数式を入力する場合も使えるので、この方法は慣れると、結構便利ですよ。<br>
<br>
]]>
</content:encoded>
</item>
<item rdf:about="http://exceljouho.livedoor.biz/archives/51403898.html">
<title>ステータスバーに文字を表示する＠エクセルマクロＶＢＡ</title>
<link>http://exceljouho.livedoor.biz/archives/51403898.html</link>
<description>エクセルのちょっとしたテクニックを紹介します。

処理が実行中なら「実行中・・・」と表示するようにするには、どうしますか？画面のちらつきを抑えるコードを書いている場合、ちょっと長い処理をさせると、処理中なのか、そうでないのかわからなくなるときがありません...</description>
<dc:creator>yas34mat</dc:creator>
<dc:date>2008-03-04T06:40:52+09:00</dc:date>
<dc:subject>エクセルマクロＶＢＡ：アプリケーション</dc:subject>
<content:encoded><![CDATA[<strong><a href="http://exceljouho.livedoor.biz/" target="_blank">エクセルのちょっとしたテクニック</a></strong>を紹介します。<br>
<br>
処理が実行中なら「実行中・・・」と表示するようにするには、どうしますか？<a href="http://exceljouho.livedoor.biz/archives/51403836.html" target="_blank">画面のちらつきを抑える</a>コードを書いている場合、ちょっと長い処理をさせると、処理中なのか、そうでないのかわからなくなるときがありませんか？マクロの処理中に文字列を表示させることが出来ます。<br>
<br>
表示する場合のコードは、<br>
<b><font size="2" color="ff0000">Application.StatusBar = "実行中・・・"</font></b><br>
<br>
表示を解除する場合のコードは、<br>
<b><font size="2" color="ff0000">Application.StatusBar = False</font></b><br>
<br>
<br>
これで実行中ならステータスバーに文字が表示されるのでわかりますね。あと、ステータスバーに文字を表示させるコードを書いたら、必ず解除するコードも書いてくださいね。書かないと処理が終わっても、ステータスバーの文字がそのままになってしまいます。<br>
<br>
<br>
これを応用して処理の進み具合を把握することが出来ます。そうです。ループ構文に組み込んで使用します。<br>
<br>
<br>
以下のサンプルコードを試してみてくださいね。<br>
<br>
'***************************************<br>
'ステータスバーに進捗状況を表示する<br>
'***************************************<br>
Sub Test13()<br>
　　Dim Rw As Long<br>
　　Dim Lastrow As Long<br>
<br>
　　For Rw = 1 To 5000<br>
　　　　Cells(Rw, 1).Value = Rw<br>
　　　　Application.StatusBar = Rw & "件書込み中・・・"<br>
　　Next Rw<br>
　　Application.StatusBar = False<br>
　　MsgBox "書き込み終了、今度は消去します。"<br>
　　Lastrow = Cells(Rows.Count, 1).End(xlUp).Row<br>
　　For Rw = 1 To Lastrow<br>
　　　　Cells(Rw, 1).Value = ""<br>
　　　　Application.StatusBar = Rw & "件消去中・・・"<br>
　　Next Rw<br>
　　Application.StatusBar = False<br>
　　MsgBox "終了しました"<br>
<br>
End Sub<br>
]]>
</content:encoded>
</item>
<item rdf:about="http://exceljouho.livedoor.biz/archives/51403836.html">
<title>画面のちらつきを抑える＠エクセルマクロＶＢＡ</title>
<link>http://exceljouho.livedoor.biz/archives/51403836.html</link>
<description>エクセルのちょっとしたテクニックを紹介します。

エクセルマクロを記録して実行すると、同じシート内での処理でも画面がちらついたりしますよね。短い処理なら気にならないかもしれませんが、長い処理になると、気になってしまうのは私だけでしょうか？

画面のちらつ...</description>
<dc:creator>yas34mat</dc:creator>
<dc:date>2008-02-25T06:52:15+09:00</dc:date>
<dc:subject>エクセルマクロＶＢＡ：アプリケーション</dc:subject>
<content:encoded><![CDATA[<strong><a href="http://exceljouho.livedoor.biz/" target="_blank">エクセルのちょっとしたテクニック</a></strong>を紹介します。<br>
<br>
エクセルマクロを記録して実行すると、同じシート内での処理でも画面がちらついたりしますよね。短い処理なら気にならないかもしれませんが、長い処理になると、気になってしまうのは私だけでしょうか？<br>
<br>
<strong>画面のちらつきを抑える</strong>コードを紹介します。<br>
<br>
<b><font size="2" color="ff0000">Application.ScreenUpdating = False</font></b><br>
<br>
コードのはじめに書いておいてください。画面の更新をコード終了まで止めるので、画面がちらつかないようになります。また、処理速度を上げる効果もあるので、長い処理のときには、特に効果的です。<br>
<br>
]]>
</content:encoded>
</item>
<item rdf:about="http://exceljouho.livedoor.biz/archives/51340600.html">
<title>空白のセルのある行を削除する＠エクセルマクロＶＢＡ</title>
<link>http://exceljouho.livedoor.biz/archives/51340600.html</link>
<description>
エクセルのちょっとしたテクニックを紹介します。

表などでデータが入力されていないセルが点在していて、その行全体を削除したいという場合、手作業では大変ですよね。ＶＢＡであらかじめコードを書いておけば、楽に処理できますよ。


'**************************...</description>
<dc:creator>yas34mat</dc:creator>
<dc:date>2008-02-18T06:47:39+09:00</dc:date>
<dc:subject>エクセルマクロＶＢＡ：セルの操作</dc:subject>
<content:encoded><![CDATA[<br>
<strong><a href="http://exceljouho.livedoor.biz/" target="_blank">エクセルのちょっとしたテクニック</a></strong>を紹介します。<br>
<br>
表などでデータが入力されていないセルが点在していて、その行全体を削除したいという場合、手作業では大変ですよね。ＶＢＡであらかじめコードを書いておけば、楽に処理できますよ。<br>
<br>
<br>
'**********************************************<br>
'アクティブセル列で空欄の場合、行全体を削除<br>
'**********************************************<br>
Sub Test12()<br>
　　Dim Clmn As Long<br>
<br>
　　Clmn = ActiveCell.Column<br>
　　Application.ScreenUpdating = False<br>
    <br>
　　Columns(Clmn).SpecialCells(xlCellTypeBlanks).EntireRow.Delete<br>
End Sub<br>
<br>
<br>
上記のコードを使用した場合でも、空白のセルが残ることがあります。その場合は、残ったセルを調べてみてください。半角スペースや全角スペースが入っていることがあります。入っていたスペースを削除して再度上記のコードを実行すれば削除されます。<br>
<br>
]]>
</content:encoded>
</item>
<item rdf:about="http://exceljouho.livedoor.biz/archives/51397337.html">
<title>条件で処理を繰り返す（Ｄｏ～Ｌｏｏｐ構文）＠エクセルマクロＶＢＡ</title>
<link>http://exceljouho.livedoor.biz/archives/51397337.html</link>
<description>エクセルのちょっとしたテクニックを紹介します。

Ｄｏ～Ｌｏｏｐ構文は、指定した条件に合致している間、または、条件に合致しない間処理を繰り返すというものです。

・構文
指定した条件に合致している間処理を繰り返す場合、
１．Ｄｏ　Ｗｈｉｌｅ　条件文
　　...</description>
<dc:creator>yas34mat</dc:creator>
<dc:date>2008-02-12T07:23:50+09:00</dc:date>
<dc:subject>エクセルマクロＶＢＡ：基本構文</dc:subject>
<content:encoded><![CDATA[<strong><a href="http://exceljouho.livedoor.biz/" target="_blank">エクセルのちょっとしたテクニック</a></strong>を紹介します。<br>
<br>
<strong>Ｄｏ～Ｌｏｏｐ</strong>構文は、指定した条件に合致している間、または、条件に合致しない間処理を繰り返すというものです。<br>
<br>
・構文<br>
指定した条件に合致している間処理を繰り返す場合、<br>
１．Ｄｏ　Ｗｈｉｌｅ　条件文<br>
　　　処理<br>
　　Ｌｏｏｐ<br>
または、<br>
２．Ｄｏ　<br>
　　　処理<br>
　　Ｌｏｏｐ　Ｗｈｉｌｅ　条件文<br>
<br>
指定した条件に合致しない間処理を繰り返す場合、<br>
１．Ｄｏ　Ｕｎｔｉｌ　条件文<br>
　　　処理<br>
　　Ｌｏｏｐ<br>
または、<br>
２．Ｄｏ　<br>
　　　処理<br>
　　Ｌｏｏｐ　Ｕｎｔｉｌ　条件文<br>
<br>
<br>
１と２の違いというと、１は条件に合わなければ処理は行いませんが、２では最低１回は処理を行います。どちらを使うかはどのような処理をさせるかによるので、使い分けてください。<br>
<br>
以下のサンプルコードを試してみてくださいね。<br>
<br>
'***************************************<br>
'ループ処理テスト<br>
'***************************************<br>
Sub Test11()<br>
　Dim i As Integer<br>
　Dim Num As Integer<br>
<br>
　i = 0<br>
　Num = 1<br>
　Do Until Num > 100<br>
　　Num = Num * 3<br>
　　i = i + 1<br>
　Loop<br>
　MsgBox "ループ回数：" & i & "回"<br>
End Sub<br>
<br>
]]>
</content:encoded>
</item>
<item rdf:about="http://exceljouho.livedoor.biz/archives/51379844.html">
<title>全角や半角の文字をそろえる＠エクセルマクロＶＢＡ</title>
<link>http://exceljouho.livedoor.biz/archives/51379844.html</link>
<description>
エクセルのちょっとしたテクニックを紹介します。

エクセルのデータで文字列の一部が半角だったりするのを全角、半角どちらかにそろえるにはどうしますか？データを受け取ったときに、全角と半角が混在して見にくいということがありますよね。VBAで一括変換しちゃいまし...</description>
<dc:creator>yas34mat</dc:creator>
<dc:date>2008-02-04T06:31:47+09:00</dc:date>
<dc:subject>エクセルマクロＶＢＡ：セルの操作</dc:subject>
<content:encoded><![CDATA[<br>
<strong><a href="http://exceljouho.livedoor.biz/" target="_blank">エクセルのちょっとしたテクニック</a></strong>を紹介します。<br>
<br>
エクセルのデータで文字列の一部が半角だったりするのを<strong>全角</strong>、<strong>半角</strong>どちらかにそろえるにはどうしますか？データを受け取ったときに、全角と半角が混在して見にくいということがありますよね。VBAで一括変換しちゃいましょう。<br>
<br>
このＳｔｒｃｏｎｖ関数を使用すると、文字列の<strong>全角</strong>と<strong>半角</strong>、大文字と小文字、ひらがなとカタカナの変換ができます。<br>
構文は、<b><font size="2" color="ff0000">Ｓｔｒｃｏｎｖ（文字列,引数）</font></b>となります。引数については、下記のようになります。<br>
<br>
　<b>vbUpperCase：文字列を大文字に変換します。<br>
　vbLowerCase：文字列を小文字に変換します。<br>
　vbProperCase：文字列の各単語の先頭の文字を大文字に変換します。<br>
　vbWide：文字列内の半角文字を全角文字に変換します。<br>
　vbNarrow：文字列内の全角文字を半角文字に変換します。<br>
　vbKatakana：文字列内のひらがなをカタカナに変換します。<br>
　vbHiragana：文字列内のカタカナをひらがなに変換します。<br>
　vbUnicode：文字列をUnicodeに変換します。<br>
　vbFromUnicode：文字列をUnicodeから既定のコードページに変換します。</b><br>
<br>
以下のサンプルコードで試してみてくださいね。<br>
<br>
'**********************************************<br>
'アクティブセル列の文字を全角または半角にそろえる<br>
'**********************************************<br>
Sub Test10()<br>
　　Dim Str As String<br>
<br>
　　Worksheets.Add before:=Worksheets(1)<br>
　　With Worksheets(1).Range("A1")<br>
　　　　.Activate<br>
　　　　.Value = "ＡＢＣ１２３アイウ"<br>
　　End With<br>
<br>
　　Str = ActiveCell.Value<br>
　　MsgBox "半角にします"<br>
　　ActiveCell.Value = StrConv(Str, vbNarrow)<br>
　　MsgBox "全角にします"<br>
　　ActiveCell.Value = StrConv(Str, vbWide)<br>
　　MsgBox "小文字にします"<br>
　　ActiveCell.Value = StrConv(Str, vbLowerCase)<br>
　　MsgBox "大文字にします"<br>
　　ActiveCell.Value = StrConv(Str, vbUpperCase)<br>
　　MsgBox "先頭を大文字にします"<br>
　　ActiveCell.Value = StrConv(Str, vbProperCase)<br>
　　MsgBox "カタカナをひらがなにします"<br>
　　ActiveCell.Value = StrConv(Str, vbHiragana)<br>
　　MsgBox "ひらがなをカタカナにします"<br>
　　ActiveCell.Value = StrConv(Str, vbKatakana)<br>
　　MsgBox "半角で小文字にします"<br>
　　ActiveCell.Value = StrConv(Str, vbNarrow + vbLowerCase)<br>
　　MsgBox "全角で先頭を大文字にします"<br>
　　ActiveCell.Value = StrConv(Str, vbProperCase + vbWide)<br>
End Sub<br>
<br>
エクセルのワークシート関数を利用して変換する場合は、<a href="http://exceljouho.livedoor.biz/archives/50951880.html" target="_blank">ASC関数：全角数字を半角数字に変換する＠エクセル</a>または、<a href="http://exceljouho.livedoor.biz/archives/50959248.html" target="_blank">JIS関数：半角数字を全角数字に変換する＠エクセル</a>を参照してください。<br>
<br>
]]>
</content:encoded>
</item>
<item rdf:about="http://exceljouho.livedoor.biz/archives/51341642.html">
<title>スクロールする範囲を指定する＠エクセルマクロＶＢＡ</title>
<link>http://exceljouho.livedoor.biz/archives/51341642.html</link>
<description>エクセルのちょっとしたテクニックを紹介します。

表示されている部分以外ワークシートを触られたくない場合など、スクロールする範囲を指定することができます。指定された領域の外側には、カーソルを移動することができません。


例）1枚目のワークシートのスクロー...</description>
<dc:creator>yas34mat</dc:creator>
<dc:date>2008-01-31T08:00:31+09:00</dc:date>
<dc:subject>エクセルマクロＶＢＡ：シートの操作</dc:subject>
<content:encoded><![CDATA[<strong><a href="http://exceljouho.livedoor.biz/" target="_blank">エクセルのちょっとしたテクニック</a></strong>を紹介します。<br>
<br>
表示されている部分以外ワークシートを触られたくない場合など、<strong>スクロール</strong>する範囲を指定することができます。指定された領域の外側には、カーソルを移動することができません。<br>
<br>
<br>
例）1枚目のワークシートの<strong>スクロール</strong>する範囲をセルA1からセルM30に限定します。<br>
<br>
<br>
'**********************************************<br>
'スクロール領域を設定する<br>
'***********************************************<br>
Sub Test8()<br>
　　ActiveSheet.ScrollArea = "A1:M30"<br>
End Sub<br>
<br>
'**********************************************<br>
'スクロール領域を設定解除する<br>
'***********************************************<br>
Sub Test9()<br>
　　ActiveSheet.ScrollArea = ""<br>
End Sub<br>
<br>
<br>
※ScrollAreaプロパティは、A1形式で範囲を指定します。また、ブックを開いた時点で設定したい場合、Workbook_Openイベントに記述します。<br>
<br>
]]>
</content:encoded>
</item>
<item rdf:about="http://exceljouho.livedoor.biz/archives/51340589.html">
<title>セルのアドレスを取得する＠エクセルマクロＶＢＡ</title>
<link>http://exceljouho.livedoor.biz/archives/51340589.html</link>
<description>エクセルのちょっとしたテクニックを紹介します。

選択した範囲のアドレスを取得する方法です。

'*********************************************
'選択した範囲のアドレスを取得する
'*********************************************

Sub Test7()
　　Dim Rng A...</description>
<dc:creator>yas34mat</dc:creator>
<dc:date>2008-01-29T08:00:46+09:00</dc:date>
<dc:subject>エクセルマクロＶＢＡ：セルの操作</dc:subject>
<content:encoded><![CDATA[<a href="http://exceljouho.livedoor.biz/" target="_blank">エクセルのちょっとしたテクニック</a>を紹介します。<br>
<br>
選択した範囲のアドレスを取得する方法です。<br>
<br>
'*********************************************<br>
'選択した範囲のアドレスを取得する<br>
'*********************************************<br>
<br>
Sub Test7()<br>
　　Dim Rng As Range<br>
<br>
　　Set Rng = ActiveWindow.RangeSelection<br>
<br>
　　'絶対参照<br>
　　MsgBox "選択した範囲のアドレスは " & Rng.Address<br>
　　'A1形式<br>
　　MsgBox "選択した範囲のアドレスは " & Rng.Address(False, False)<br>
　　'R1C1形式<br>
　　MsgBox "選択した範囲のアドレスは " & Rng.Address(False, False, xlR1C1)<br>
End Sub<br>
<br>
※印刷範囲やスクロールエリアを設定するときなどに使えますよ。<br>
<br>
]]>
</content:encoded>
</item>
<item rdf:about="http://exceljouho.livedoor.biz/archives/51367246.html">
<title>選択したセル範囲内で処理を行う＠エクセルマクロＶＢＡ</title>
<link>http://exceljouho.livedoor.biz/archives/51367246.html</link>
<description>
エクセルのちょっとしたテクニックを紹介します。

行全体や列全体で処理させるのではなく、行の一部とか列の一部など自分が選択した範囲内だけマクロで処理したいと言った場合どうしますか？その都度、コードを書き直すのは面倒くさいし、非効率ですよね。自分が選択し...</description>
<dc:creator>yas34mat</dc:creator>
<dc:date>2008-01-27T08:51:12+09:00</dc:date>
<dc:subject>エクセルマクロＶＢＡ：セルの操作</dc:subject>
<content:encoded><![CDATA[<br>
<a href="http://exceljouho.livedoor.biz/" target="_blank">エクセルのちょっとしたテクニック</a>を紹介します。<br>
<br>
行全体や列全体で処理させるのではなく、行の一部とか列の一部など自分が選択した範囲内だけマクロで処理したいと言った場合どうしますか？その都度、コードを書き直すのは面倒くさいし、非効率ですよね。自分が選択した範囲を一つのコレクションと考え、その中で処理をさせるようにすれば良いのです。<br>
<br>
<br>
例として選択したセルにOKという文字を入力する場合、以下のように記述します。<br>
<br>
'***********************************<br>
'選択範囲内で処理をさせる<br>
'***********************************<br>
Sub Test6()<br>
Dim Rng As Range<br>
Dim rn As Range<br>
<br>
<b><font size="2" color="ff0000">Set Rng = ActiveWindow.RangeSelection</font></b><br>
<br>
For Each rn In Rng<br>
　　rn.Value = "ＯＫ"<br>
Next rn<br>
<br>
End Sub<br>
<br>
<br>
※上記の場合、選択するセルは必ずしも隣接している必要はありません。<br>
※似たような処理として、手作業で選択したセルに同じ内容を入力する操作は<a href="http://exceljouho.livedoor.biz/archives/51144452.html" target="_blank">複数のセルに一括入力＠エクセル</a>を参照してください。<br>
<br>
<a href="http://exceljouho.livedoor.biz/archives/51367231.html" target="_blank">Ｆｏｒ～Ｎｅｘｔ構文</a>内の処理を変えれば、メニューバーに自作マクロを登録しておいたりするときなどに、結構使えるテクニックなので、ぜひ使ってみてくださいね。<br>
<br>
]]>
</content:encoded>
</item>
<item rdf:about="http://exceljouho.livedoor.biz/archives/51367231.html">
<title>ループ処理（Ｆｏｒ～Ｎｅｘｔ）＠エクセルマクロＶＢＡ</title>
<link>http://exceljouho.livedoor.biz/archives/51367231.html</link>
<description>エクセルのちょっとしたテクニックを紹介します。

処理内容を繰り返しループさせる場合に使います。よく使う構文の一つで処理回数や処理範囲が決まっている場合には有効です。


・構文
Ｆｏｒ 変数 ＝ 変数の開始 Ｔｏ 変数の終わり Ｓｔｅｐ 変数の移動幅
　　処理...</description>
<dc:creator>yas34mat</dc:creator>
<dc:date>2008-01-25T08:39:47+09:00</dc:date>
<dc:subject>エクセルマクロＶＢＡ：基本構文</dc:subject>
<content:encoded><![CDATA[<a href="http://exceljouho.livedoor.biz/" target="_blank">エクセルのちょっとしたテクニック</a>を紹介します。<br>
<br>
処理内容を繰り返し<strong>ループ</strong>させる場合に使います。よく使う構文の一つで処理回数や処理範囲が決まっている場合には有効です。<br>
<br>
<br>
<b>・構文</b><br>
<b>Ｆｏｒ</b> 変数 ＝ 変数の開始 <b>Ｔｏ</b> 変数の終わり <b>Ｓｔｅｐ</b> 変数の移動幅<br>
　　処理１（カウンタ変数を含めた処理を記述します。）<br>
<b>Ｎｅｘｔ</b> 変数<br>
<br>
<br>
以下のサンプルコードで確認してくださいね。<br>
<br>
'************************************<br>
'<strong>ループ</strong>処理(A列の1行目から20行目に<br>
'1から20まで数字を順に入力していきます)<br>
'************************************<br>
Sub Test5()<br>
Dim i As Integer<br>
<br>
For i = 1 To 20<br>
　　Cells(i, 1).Value = i<br>
Next i<br>
<br>
End Sub<br>
<br>
]]>
</content:encoded>
</item>
<item rdf:about="http://exceljouho.livedoor.biz/archives/51340593.html">
<title>列の幅・行の高さを調節する＠エクセルマクロＶＢＡ</title>
<link>http://exceljouho.livedoor.biz/archives/51340593.html</link>
<description>エクセルのちょっとしたテクニックを紹介します。

セルの列幅や行の高さを入力されている文字列に合わせて調節できます。

・列幅を調節する場合
　　　　　Range(&quot;A1&quot;).EntireColumn.AutoFitまたは
　　　　　Columns(1).AutoFit
・行の高さを調整する場合
　　　...</description>
<dc:creator>yas34mat</dc:creator>
<dc:date>2008-01-24T01:17:17+09:00</dc:date>
<dc:subject>エクセルマクロＶＢＡ：セルの操作</dc:subject>
<content:encoded><![CDATA[<a href="http://exceljouho.livedoor.biz/" target="_blank">エクセルのちょっとしたテクニック</a>を紹介します。<br>
<br>
セルの列幅や行の高さを入力されている文字列に合わせて調節できます。<br>
<br>
・列幅を調節する場合<br>
　　　　　<b><font size="2" color="ff0000">Range("A1").EntireColumn.AutoFit</font></b>または<br>
　　　　　<b><font size="2" color="ff0000">Columns(1).AutoFit</font></b><br>
・行の高さを調整する場合<br>
　　　　　<b><font size="2" color="ff0000">Range("A1").EntireRow.AutoFit</font></b>または<br>
　　　　　<b><font size="2" color="ff0000">Rows(1).AutoFit</font></b><br>
<br>
<br>
以下のサンプルコードで試してみてくださいね。<br>
<br>
Sub Test2()<br>
　　With Range("A1")<br>
　　　　.Value = "あっという間にセルの列幅や行の高さが変わります。"<br>
　　　　.RowHeight = 30<br>
　　　　.ColumnWidth = 30<br>
　　End With<br>
<br>
　　MsgBox "列幅を調節"<br>
　　Range("A1").EntireColumn.AutoFit<br>
　　MsgBox "行の高さを調節"<br>
　　Range("A1").EntireRow.AutoFit<br>
<br>
　　With Range("A1")<br>
　　　　.RowHeight = 30<br>
　　　　.ColumnWidth = 30<br>
　　End With<br>
<br>
　　MsgBox "列幅を調節"<br>
　　Columns(1).AutoFit<br>
　　MsgBox "行の高さを調節"<br>
　　Rows(1).AutoFit<br>
End Sub<br>
<br>
]]>
</content:encoded>
</item>
<item rdf:about="http://exceljouho.livedoor.biz/archives/51345352.html">
<title>処理を分岐させる（Ｓｅｌｅｃｔ　Ｃａｓｅ構文）＠エクセルマクロＶＢＡ</title>
<link>http://exceljouho.livedoor.biz/archives/51345352.html</link>
<description>エクセルのちょっとしたテクニックを紹介します。

ＩＦ構文とは別に一つの条件式に対して、複数の処理を分岐させることができます。それが、Ｓｅｌｅｃｔ　Ｃａｓｅステートメントです。この場合、ＩＦ構文でもコードは書けますが、Ｓｅｌｅｃｔ　Ｃａｓｅステートメント...</description>
<dc:creator>yas34mat</dc:creator>
<dc:date>2008-01-19T02:06:29+09:00</dc:date>
<dc:subject>エクセルマクロＶＢＡ：基本構文</dc:subject>
<content:encoded><![CDATA[<a href="http://exceljouho.livedoor.biz/" target="_blank">エクセルのちょっとしたテクニック</a>を紹介します。<br>
<br>
ＩＦ構文とは別に一つの条件式に対して、複数の<strong>処理を分岐させる</strong>ことができます。それが、Ｓｅｌｅｃｔ　Ｃａｓｅステートメントです。この場合、<a href="http://exceljouho.livedoor.biz/archives/51345307.html" target="_blank">ＩＦ構文</a>でもコードは書けますが、Ｓｅｌｅｃｔ　Ｃａｓｅステートメントの方がすっきりしていて見やすいです。<br>
<br>
<b>・構文</b><br>
Ｓｅｌｅｃｔ　Ｃａｓｅ　条件式<br>
　　Ｃａｓｅ　条件式の値１<br>
　　　　処理１<br>
　　Ｃａｓｅ　条件式の値２<br>
　　　　処理２<br>
　　Ｃａｓｅ　Ｅｌｓｅ<br>
　　　　処理３<br>
Ｅｎｄ　Ｓｅｌｅｃｔ<br>
<br>
※条件式が値１の場合、処理１、値２の場合、処理２を行い、それ以外は処理３を行うという意味です。<br>
<br>
<br>
以下はサンプルコードになります。試してみて下さいね。<br>
<br>
Sub Test4()<br>
　　Dim Num As Integer<br>
    <br>
　　Num = InputBox("数字を入力して下さい。")<br>
　　Select Case Num<br>
　　　　Case 1 To 9<br>
　　　　　　MsgBox "１桁"<br>
　　　　Case 10 To 99<br>
　　　　　　MsgBox "２桁"<br>
　　　　Case 100 To 999<br>
　　　　　　MsgBox "３桁"<br>
　　　　Case Else<br>
　　　　　　MsgBox "１～３桁までの正の整数を入力してくださいね。"<br>
　　End Select<br>
End Sub<br>
<br>
]]>
</content:encoded>
</item>
<item rdf:about="http://exceljouho.livedoor.biz/archives/51345307.html">
<title>処理を分岐させる（ＩＦ構文）＠エクセルマクロＶＢＡ</title>
<link>http://exceljouho.livedoor.biz/archives/51345307.html</link>
<description>エクセルのちょっとしたテクニックを紹介します。

ＶＢＡでは、条件によって処理を分岐させることが出来ます。ＶＢＡでコードを書くと頻繁に使う構文の一つです。ＩＦを使った処理分岐の構文は以下の通りとなります。

・構文１
Ｉｆ　条件文１　Ｔｈｅｎ
　　　処理...</description>
<dc:creator>yas34mat</dc:creator>
<dc:date>2008-01-17T01:59:07+09:00</dc:date>
<dc:subject>エクセルマクロＶＢＡ：基本構文</dc:subject>
<content:encoded><![CDATA[<a href="http://exceljouho.livedoor.biz/" target="_blank">エクセルのちょっとしたテクニック</a>を紹介します。<br>
<br>
ＶＢＡでは、条件によって<strong>処理を分岐させる</strong>ことが出来ます。ＶＢＡでコードを書くと頻繁に使う構文の一つです。<strong>ＩＦ</strong>を使った処理分岐の構文は以下の通りとなります。<br>
<br>
<b>・構文１</b><br>
Ｉｆ　条件文１　Ｔｈｅｎ<br>
　　　処理１<br>
Ｅｎｄ　Ｉｆ<br>
<br>
※条件文１がＴｒｕｅなら、処理１を行うという意味です。<br>
この場合、一行で書く書くと以下のようになります。<br>
　Ｉｆ　条件文１　Ｔｈｅｎ　処理１<br>
<br>
<b>・構文２</b><br>
Ｉｆ　条件文１　Ｔｈｅｎ<br>
　　　処理１<br>
Ｅｌｓｅ<br>
　　　処理２<br>
Ｅｎｄ　Ｉｆ<br>
※条件文１がＴｒｕｅなら、処理１を行い、それ以外は処理２を行うという意味です。<br>
<br>
<br>
構文２で条件分岐を増やすには、以下のようになります。<br>
<br>
Ｉｆ　条件文１　Ｔｈｅｎ<br>
　　　処理１<br>
ＥｌｓｅＩｆ　条件文２　Ｔｈｅｎ　<br>
　　　処理２<br>
ＥｌｓｅＩｆ条件文３　Ｔｈｅｎ　<br>
　　　処理３<br>
Ｅｌｓｅ<br>
　　　処理４<br>
Ｅｎｄ　Ｉｆ<br>
<br>
以下は、サンプルコードになります。試してみてくださいね。<br>
<br>
Sub Test3()<br>
　　Dim Num As Integer<br>
    <br>
　　Num = InputBox("数字を入力して下さい。")<br>
　　If Num < 20 Then<br>
　　　　MsgBox "未成年"<br>
　　Else<br>
　　　　MsgBox "成年"<br>
　　End If    <br>
End Sub<br>
<br>
]]>
</content:encoded>
</item>
<item rdf:about="http://exceljouho.livedoor.biz/archives/51339336.html">
<title>データの端の行や列を取得する＠エクセルマクロＶＢＡ</title>
<link>http://exceljouho.livedoor.biz/archives/51339336.html</link>
<description>エクセルのちょっとしたテクニックを紹介します。


エクセルでＶＢＡを使用してコードを書く時、よく使うのが、データの端の行や列を取得するコードです。データの端の行や列を取得することで、データ数が変わっても処理ができるようになります。


・最終行（データ...</description>
<dc:creator>yas34mat</dc:creator>
<dc:date>2008-01-12T07:00:26+09:00</dc:date>
<dc:subject>エクセルマクロＶＢＡ：セルの操作</dc:subject>
<content:encoded><![CDATA[<a href="http://exceljouho.livedoor.biz/" target="_blank">エクセルのちょっとしたテクニック</a>を紹介します。<br>
<br>
<br>
エクセルでＶＢＡを使用してコードを書く時、よく使うのが、<strong>データの端の行や列を取得する</strong>コードです。<strong>データの端の行や列を取得する</strong>ことで、データ数が変わっても処理ができるようになります。<br>
<br>
<br>
・最終行（データの一番下の行番号）を取得する場合<br>
　　　　　<b><font size="2" color="ff0000">Cells(Rows.Count, 1).End(xlUp).Row</font></b><br>
※Ａ列の最終行を取得します。セルの下端から上方向に向かって一番最初にデータのあるセルの行を返します。数字の部分を変えることでＡ列以外の列の最終行を取得できます。<br>
<br>
<br>
・最終列（データの一番右の列番号）を取得する場合<br>
　　　　　<b><font size="2" color="ff0000">Cells(1, Columns.Count).End(xlToLeft).Column</font></b><br>
※１行目の右端の列を取得します。セルの右端から左方向に向かって一番最初にデータのあるセルの列を返します。数字の部分を変えることで指定した行の右端の列を取得できます。<br>
<br>
<br>
・最初の行（データの一番上の行番号）を取得する場合<br>
　　　　　<b><font size="2" color="ff0000">Cells(1, 1).End(xlDown).Row</font></b><br>
※セルＡ１から下方向に向かって一番最初にデータのあるセルの行を返します。数字の部分を変えることで開始するセルを変更できます。<br>
<br>
<br>
・最初の列（データの一番左の列番号）を取得する場合<br>
　　　　　<b><font size="2" color="ff0000">Cells(1, 1).End(xlToRight).Column</font></b><br>
※セルＡ１から右方向に向かって一番最初にデータのあるセルの列を返します。数字の部分を変えることで開始するセルを変更できます。<br>
<br>
<br>
セルにいくつかデータを入力し、以下のサンプルコードで試してみてくださいね。<br>
<br>
Sub Test1()<br>
　　　Dim a As Long<br>
　　　Dim b As Long<br>
　　　Dim c As Long<br>
　　　Dim d As Long<br>
<br>
　　　a = Cells(Rows.Count, 1).End(xlUp).Row<br>
　　　b = Cells(1, Columns.Count).End(xlToLeft).Column<br>
　　　c = Cells(1, 1).End(xlDown).Row<br>
　　　d = Cells(1, 1).End(xlToRight).Column<br>
 <br>
　　　MsgBox "最終行は、" & a & vbCrLf & "最終列は、" & b _<br>
　　　　　& vbCrLf & "セルA1から下へ向かって最初の行は、" & c  _<br>
　　　　　　　& vbCrLf & "セルA1から右へ向かって最初の列は、" & d<br>
<br>
End Sub<br>
<br>
※手作業で行う場合は、<a href="http://exceljouho.livedoor.biz/archives/50993045.html" target="_blank">ショートカットキー３＠エクセル</a>または、<a href="http://exceljouho.livedoor.biz/archives/50993017.html" target="_blank">データの端へ移動する＠エクセル</a>という方法もあります。<br>
<br>
]]>
</content:encoded>
</item>

</rdf:RDF>