<?xml version="1.0" encoding="UTF-8"?>

<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns="http://purl.org/rss/1.0/"
>

<channel rdf:about="http://easy-excel.seesaa.net/">
<title>初めてでも簡単！やってみようエクセルマクロ</title>
<link>http://easy-excel.seesaa.net/</link>
<description>エクセルマクロを使っていますか？マクロを使えば、作業効率を大幅にアップさせる事ができます。エクセルで作業を行っている方、部下にエクセルで作業を行わせている方は必見です。</description>
<dc:language>ja</dc:language>
<admin:generatorAgent rdf:resource="http://blog.seesaa.jp/" />
<items>
<rdf:Seq>
<rdf:li rdf:resource="http://easy-excel.seesaa.net/article/108014631.html" />
<rdf:li rdf:resource="http://easy-excel.seesaa.net/article/107937803.html" />
<rdf:li rdf:resource="http://easy-excel.seesaa.net/article/80778702.html" />
<rdf:li rdf:resource="http://match.seesaa.jp/ot_listing.pl?aid=476781&amp;sid=easy-excel&amp;tid=seesaa_hotspot&amp;k=%E3%82%B0%E3%83%A9%E3%83%B3%E3%83%BB%E3%83%88%E3%83%AA%E3%83%8E&amp;hid=35" />
<rdf:li rdf:resource="http://easy-excel.seesaa.net/article/78406164.html" />
<rdf:li rdf:resource="http://easy-excel.seesaa.net/article/77992494.html" />
<rdf:li rdf:resource="http://match.seesaa.jp/ot_listing.pl?aid=476781&amp;sid=easy-excel&amp;tid=seesaa_hotspot&amp;k=%E9%A8%92%E9%9F%B3%E8%A6%8F%E5%88%B6&amp;hid=35" />
<rdf:li rdf:resource="http://easy-excel.seesaa.net/article/77323108.html" />
<rdf:li rdf:resource="http://easy-excel.seesaa.net/article/76248355.html" />
<rdf:li rdf:resource="http://easy-excel.seesaa.net/article/76116500.html" />
<rdf:li rdf:resource="http://easy-excel.seesaa.net/article/75705587.html" />
<rdf:li rdf:resource="http://easy-excel.seesaa.net/article/75541448.html" />
<rdf:li rdf:resource="http://easy-excel.seesaa.net/article/74997238.html" />
<rdf:li rdf:resource="http://easy-excel.seesaa.net/article/74452765.html" />
<rdf:li rdf:resource="http://easy-excel.seesaa.net/article/74232005.html" />
<rdf:li rdf:resource="http://easy-excel.seesaa.net/article/72910723.html" />
<rdf:li rdf:resource="http://easy-excel.seesaa.net/article/72740462.html" />
</rdf:Seq>
</items>
</channel>

<item rdf:about="http://easy-excel.seesaa.net/article/108014631.html">
<link>http://easy-excel.seesaa.net/article/108014631.html</link>
<title>"処理中です"と表示したい</title>
<description>（作成例）まずは、"処理中"という名前のシートを作ります。作ったら、５行３列あたりに"処理中です"と入力して下さい。次に、実行するマクロの先頭に下記の２行を追加して下さい。Sheets("処理中").SelectApplication.ScreenUpdating = False    最後に、実行するマクロの最後に下記の２行を追加して下さい。（マクロ実行後に表示したいシートが"Sheet1"の場合）Sheets("Sheet1").SelectApplication.Scr...</description>
<dc:subject>日記</dc:subject>
<dc:creator>ぷろぐらまー</dc:creator>
<dc:date>2008-10-13T15:11:52+09:00</dc:date>
<content:encoded><![CDATA[
<script type="text/javascript"><!--
google_ad_client = "pub-0675261845573011";
//005 250x250, 作成済み 07/12/07
google_ad_slot = "4996813865";
google_ad_width = 250;
google_ad_height = 250;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br/>

（作成例）<br/>
まずは、"処理中"という名前のシートを作ります。<br/>
作ったら、５行３列あたりに"処理中です"と入力して下さい。<br/><br/>

次に、実行するマクロの先頭に下記の２行を追加して下さい。<br/>
<br/>
Sheets("処理中").Select<br/>
Application.ScreenUpdating = False<br/><br/>
    
最後に、実行するマクロの最後に下記の２行を追加して下さい。<br/>
（マクロ実行後に表示したいシートが"Sheet1"の場合）<br/><br/>

Sheets("Sheet1").Select<br/>
Application.ScreenUpdating = True<br/><br/>

これでマクロを実行すると、"処理中です"と表示され、<br/>
終了すると"Sheet1"が表示されます。<br/><br/>

尚、今回の様にマクロ実行中の画面を固定する事で、<br/>
マクロの実行速度が向上します。<br/><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://easy-excel.seesaa.net/article/107937803.html">
<link>http://easy-excel.seesaa.net/article/107937803.html</link>
<title>起動時にマクロを実行したい</title>
<description>エクセル起動時にマクロを実行するには、Auto_openプロシージャを使います。（作成例）エクセルを起動したら、メニュバーから[ツール]-[マクロ]-[新しいマクロの記録] を選択します。マクロの記録というタイトルの画面がでてきます。マクロ名を確認し、何も変更せずに[OK]をクリックします。マクロの記録中になりました。何もせず、メニュバーから[ツール]-[マクロ]-[記録終了]を選択します。VisualBasicEditorを開きましょう。=== 開き方 === Visual...</description>
<dc:subject>日記</dc:subject>
<dc:creator>ぷろぐらまー</dc:creator>
<dc:date>2008-10-11T21:01:51+09:00</dc:date>
<content:encoded><![CDATA[
エクセル起動時にマクロを実行するには、<br/>
Auto_openプロシージャを使います。<br/>

<script type="text/javascript"><!--
google_ad_client = "pub-0675261845573011";
//005 250x250, 作成済み 07/12/07
google_ad_slot = "4996813865";
google_ad_width = 250;
google_ad_height = 250;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br/>



（作成例）<br/>
エクセルを起動したら、メニュバーから<br/>
[ツール]-[マクロ]-[新しいマクロの記録] を選択します。<br/><br/>

マクロの記録というタイトルの画面がでてきます。<br/>
マクロ名を確認し、何も変更せずに[OK]をクリックします。<br/><br/>

マクロの記録中になりました。<br/><br/>

何もせず、メニュバーから[ツール]-[マクロ]-[記録終了]<br/>
を選択します。<br/><br/>

VisualBasicEditorを<br/>
開きましょう。<br/><br/>

=== 開き方 === <br/>
VisualBasicのツールバーが表示されていなければ、<br/>
エクセルのメニュバーから[表示]-[ツールバー]-[VisualBasic]<br/>
でVisualBasicのツールバーを表示させます。<br/>
VisualBasicのツールバーの中にあるVisualBasicEditorを<br/>
クリックします。<br/>
これでVisualBasicEditorが開けました。<br/><br/>

ウインドウのタイトルが"プロジェクト"で始まるものが<br/> 
表示されていなければ、<br/>
メニュバーから[表示]-[プロジェクトエクスプローラ]を選択し、<br/>
表示させて下さい。<br/><br/>

プロジェクトエクスプローラが表示されたら、<br/>
標準モジュールフォルダの中にあるModule1をダブルクリック<br/>
します。<br/><br/>

作成したマクロの内容が表示されます。<br/><br/>

Sub Macro1()<br/>
'<br/>
' Macro1 Macro<br/>
' マクロ記録日 : 2008/10/11  ユーザー名 :<br/>
'<br/>
<br/>
'<br/>
End Sub<br/><br/>

上記マクロを下記の様に修正して下さい。<br/><br/>

Sub Auto_open()<br/>
'<br/>
' Macro1 Macro<br/>
' マクロ記録日 : 2008/10/11  ユーザー名 :<br/>
'<br/>
<br/>
'<br/>
    MsgBox "起動時処理"<br/>
End Sub<br/><br/>

修正が終わったら、保存してファイルを閉じてください。<br/>
<br/>
保存したファイルを起動すると、<br/>
"起動時処理"と記述されたメッセージが表示されます。<br/>

<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://easy-excel.seesaa.net/article/80778702.html">
<link>http://easy-excel.seesaa.net/article/80778702.html</link>
<title>第28回SelectCase文の説明</title>
<description>今回は前回作成したマクロの説明をします。前回作成したマクロは、Select Case文で1行1列の値を判定し80～100の時、"優"60～79の時、"良"30～59の時、"可" 0～29の時、"不可"を1行2列に代入します。但し、1行1列の値が0～100までの整数しか入力されていない事を前提としています。 1行1列に次のような値が入力されていた場合、正確に処理できません。未入力の時、0と判断し、"不可"を設定ブランクの時、何もしない。文字列混入時、何もしない。20.5を入力時...</description>
<dc:subject>日記</dc:subject>
<dc:creator>ぷろぐらまー</dc:creator>
<dc:date>2008-01-26T22:18:04+09:00</dc:date>
<content:encoded><![CDATA[
今回は前回作成したマクロの説明をします。<br/>

<script type="text/javascript"><!--
google_ad_client = "pub-0675261845573011";
//005 250x250, 作成済み 07/12/07
google_ad_slot = "4996813865";
google_ad_width = 250;
google_ad_height = 250;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br/>


前回作成したマクロは、<br/>
Select Case文で1行1列の値を判定し<br/>
80～100の時、"優"<br/>
60～79の時、"良"<br/>
30～59の時、"可"<br/>
 0～29の時、"不可"<br/>
を1行2列に代入します。<br/><br/>

但し、1行1列の値が0～100までの整数しか<br/>
入力されていない事を前提としています。 <br/><br/>

1行1列に次のような値が入力されていた場合、<br/>
正確に処理できません。<br/><br/>

未入力の時、0と判断し、"不可"を設定<br/>
ブランクの時、何もしない。<br/>
文字列混入時、何もしない。<br/>
20.5を入力時、0～29と判断し、"不可"を設定<br/>
29.5を入力時、何もしない。<br/>
110を入力時、何もしない。<br/><br/>

人が入力したデータは誤っている可能性がある為、<br/>
エラーチェックが必要となりますが、<br/>
データベース等のデータで、<br/>
決まった値しか入力されていないのであれば、<br/>
エラーチェックは不要となります。<br/><br/>

ではまた・・・<br/><a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://match.seesaa.jp/ot_listing.pl?aid=476781&amp;sid=easy-excel&amp;tid=seesaa_hotspot&amp;k=%E3%82%B0%E3%83%A9%E3%83%B3%E3%83%BB%E3%83%88%E3%83%AA%E3%83%8E&amp;hid=35">
<link>http://match.seesaa.jp/ot_listing.pl?aid=476781&amp;sid=easy-excel&amp;tid=seesaa_hotspot&amp;k=%E3%82%B0%E3%83%A9%E3%83%B3%E3%83%BB%E3%83%88%E3%83%AA%E3%83%8E&amp;hid=35</link>
<title>[PR]注目のキーワード「グラン・トリノ」</title>
<description><![CDATA[
<a href="http://match.seesaa.jp/ot_listing.pl?aid=476781&sid=easy-excel&tid=seesaa_hotspot&k=%E6%98%A0%E7%94%BB&hid=35">映画</a>&nbsp;|&nbsp;<a href="http://match.seesaa.jp/ot_listing.pl?aid=476781&sid=easy-excel&tid=seesaa_hotspot&k=%E3%82%AF%E3%83%AA%E3%83%B3%E3%83%88%E3%83%BB%E3%82%A4%E3%83%BC%E3%82%B9%E3%83%88%E3%82%A6%E3%83%83%E3%83%89&hid=35">クリント・イーストウッド</a>&nbsp;|&nbsp;<a href="http://match.seesaa.jp/ot_listing.pl?aid=476781&sid=easy-excel&tid=seesaa_hotspot&k=%E3%82%A6%E3%82%A9%E3%83%AB%E3%83%88&hid=35">ウォルト</a>&nbsp;|&nbsp;<a href="http://match.seesaa.jp/ot_listing.pl?aid=476781&sid=easy-excel&tid=seesaa_hotspot&k=%E3%82%A4%E3%83%BC%E3%82%B9%E3%83%88%E3%82%A6%E3%83%83%E3%83%89&hid=35">イーストウッド</a>&nbsp;|&nbsp;<a href="http://match.seesaa.jp/ot_listing.pl?aid=476781&sid=easy-excel&tid=seesaa_hotspot&k=%E3%82%BF%E3%82%AA&hid=35">タオ</a>&nbsp;|&nbsp;<a href="http://match.seesaa.jp/ot_listing.pl?aid=476781&sid=easy-excel&tid=seesaa_hotspot&k=%E3%81%84%E3%81%84&hid=35">いい</a>&nbsp;|&nbsp;<a href="http://match.seesaa.jp/ot_listing.pl?aid=476781&sid=easy-excel&tid=seesaa_hotspot&k=%E3%82%A2%E3%83%A1%E3%83%AA%E3%82%AB&hid=35">アメリカ</a>&nbsp;|&nbsp;<a href="http://match.seesaa.jp/ot_listing.pl?aid=476781&sid=easy-excel&tid=seesaa_hotspot&k=%E4%B8%BB%E6%BC%94&hid=35">主演</a>&nbsp;|&nbsp;<a href="http://match.seesaa.jp/ot_listing.pl?aid=476781&sid=easy-excel&tid=seesaa_hotspot&k=%E7%9B%A3%E7%9D%A3&hid=35">監督</a>&nbsp;|&nbsp;<a href="http://match.seesaa.jp/ot_listing.pl?aid=476781&sid=easy-excel&tid=seesaa_hotspot&k=%E4%BA%BA%E7%94%9F&hid=35">人生</a>
]]></description>
<dc:date>2008-01-26T22:18:04+09:00</dc:date>
<dc:creator>ads by Seesaa</dc:creator>
</item>
<item rdf:about="http://easy-excel.seesaa.net/article/78406164.html">
<link>http://easy-excel.seesaa.net/article/78406164.html</link>
<title>第27回SelectCase文</title>
<description>前回、前々回は入力した値によって以下の判定を行いました。①未入力またはブランクの時 "未入力エラー"②文字列混入時 "文字列混入エラー"③少数混入時 "少数混入エラー"④80～100の整数値 "優"⑤60～79の整数値 "良"⑥30～59の整数値 "可"⑦0～29の整数値 "不可"⑧0～100ではない整数値 "範囲外エラー"もしも、0～100の整数値しか入力されていなければ、上記④～⑦だけの判定で十分となります。この場合の分岐処理は、ElseIfを用いたIf文より、Selec...</description>
<dc:subject>日記</dc:subject>
<dc:creator>ぷろぐらまー</dc:creator>
<dc:date>2008-01-14T11:13:44+09:00</dc:date>
<content:encoded><![CDATA[
<script type="text/javascript"><!--
google_ad_client = "pub-0675261845573011";
//005 250x250, 作成済み 07/12/07
google_ad_slot = "4996813865";
google_ad_width = 250;
google_ad_height = 250;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br/>

前回、前々回は入力した値によって<br/>
以下の判定を行いました。<br/><br/>

①未入力またはブランクの時 "未入力エラー"<br/>
②文字列混入時 "文字列混入エラー"<br/>
③少数混入時 "少数混入エラー"<br/>
④80～100の整数値 "優"<br/>
⑤60～79の整数値 "良"<br/>
⑥30～59の整数値 "可"<br/>
⑦0～29の整数値 "不可"<br/>
⑧0～100ではない整数値 "範囲外エラー"<br/><br/>

もしも、0～100の整数値しか入力されていなければ、<br/>
上記④～⑦だけの判定で十分となります。<br/><br/>

この場合の分岐処理は、ElseIfを用いたIf文より、<br/>
SelectCase文を使うほうが、より自然です。<br/><br/>

[初期設定]<br/>
ファイル名:Book1.xls<br/>
シート名:Sheet1<br/>
下記の値を設定する<br/>
1行A列:35<br/><br/>

[マクロの処理]<br/>
1行A列の値を判定し、判定結果を1行B列に設定する。<br/>
判定方法は上記④～⑦を参照して下さい。<br/><br/>

尚、0～100の整数値以外が入力されていた場合、<br/>
1行B列に設定されるメッセージは考慮していません。<br/><br/><br/>


まずは、下記のMacro1を作成して下さい。<br/><br/>

Sub Macro1()<br/>
'<br/>
' Macro1 Macro<br/>
' マクロ記録日 : 2008/01/14 ユーザー名 :<br/>
'<br/>
<br/>
'判定処理<br/>
Select Case Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 1)<br/>
    Case 80 To 100<br/>
        Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 2) = "優"<br/>
    Case 60 To 79<br/>
        Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 2) = "良"<br/>
    Case 30 To 59<br/>
        Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 2) = "可"<br/>
    Case 0 To 29<br/>
        Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 2) = "不可"<br/>
End Select<br/><br/><br/>


End Sub<br/><br/>

1行A列に0～100までの整数値を入力した場合、<br/>
正しく判定される事を確認してください。<br/><br/>

0～100までの整数値以外を入力した場合、<br/>
正しく判定されない事を確認してみて下さい。<br/><br/>

ソースコードについては、次回説明します。<br/><br/>

ではまた・・・<br/>
<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://easy-excel.seesaa.net/article/77992494.html">
<link>http://easy-excel.seesaa.net/article/77992494.html</link>
<title>第26回複数条件のIf文の説明</title>
<description>今回は前回作成したマクロの説明をします。前回作成したマクロは1行A列の値を判定し、判定結果を1行B列に設定します。判定方法と1行B列の設定値は以下の8パターンです。①未入力またはブランク  "未入力エラー"②文字列混入時          "文字列混入エラー"③少数混入時            "少数混入エラー"④80～100の整数値       "優"⑤60～79の整数値        "良"⑥30～59の整数値        "可"⑦0～29の整数値         "不...</description>
<dc:subject>日記</dc:subject>
<dc:creator>ぷろぐらまー</dc:creator>
<dc:date>2008-01-12T13:48:41+09:00</dc:date>
<content:encoded><![CDATA[
今回は前回作成したマクロの説明をします。<br/>

<script type="text/javascript"><!--
google_ad_client = "pub-0675261845573011";
//005 250x250, 作成済み 07/12/07
google_ad_slot = "4996813865";
google_ad_width = 250;
google_ad_height = 250;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br/>


前回作成したマクロは1行A列の値を判定し、<br/>
判定結果を1行B列に設定します。<br/><br/>

判定方法と1行B列の設定値は以下の8パターンです。<br/><br/>

①未入力またはブランク  "未入力エラー"<br/>
②文字列混入時          "文字列混入エラー"<br/>
③少数混入時            "少数混入エラー"<br/>
④80～100の整数値       "優"<br/>
⑤60～79の整数値        "良"<br/>
⑥30～59の整数値        "可"<br/>
⑦0～29の整数値         "不可"<br/>
⑧0～100ではない整数値  "範囲外エラー"<br/><br/>

この様に複数の条件で処理が分岐する場合、<br/>
ElseIfを用いたIf文を使用します。<br/><br/>

処理の流れとしては、<br/>
①から順番に判定していき、<br/>
条件に当てはまったら、1行B列に値を<br/>
設定してIf文を終了します。<br/><br/>

⑧の条件はElseを使っていますので、<br/>
①～⑦まですべて満たされなければ、<br/>
必ず⑧の処理が行われます。<br/><br/>

以下にこのIf文の補足事項を示します。<br/><br/>

まず、③では、<br/>
少数が混入しているかチェックする為に<br/>
InStr関数を使っています。<br/><br/>

InStr(1, work, ".", vbTextCompare)<br/><br/>

InStr関数に上記の様な四つの引数を設定した場合、<br/>
変数workの1文字目から少数点を検索し、<br/>
見つかった場合は検索位置を返します。<br/><br/>

例えば、workの値が0.5であれば、<br/>
少数点は左から２文字目なので、2を返します。<br/><br/>

見つからなかった場合は、0を返します。<br/><br/>

1行1列の値が整数なら、少数点が見つからず、<br/>
InStr関数は0を返します。<br/><br/>

その為、下記ElseIf文を満たさず、④の判定に<br/>
進みます。<br/><br/>

ElseIf 0 <> InStr(1, work, ".", vbTextCompare) Then<br/><br/>

1行1列の値が少数なら、変数work内で<br/>
少数点が見つかり、InStr関数は0以外を返します。<br/>
その為、ElseIfの条件を満たし、<br/>
1行B列に"少数混入エラー"を設定し、<br/>
If文を終了します。<br/><br/>

InStr関数の詳細な説明はヘルプファイル等を<br/>
参照してみて下さい。<br/><br/>

次に④～⑦の判定ですが、ここでは<br/>
AND演算子を使っています。<br/><br/>

AND演算子はAND演算子の前後の条件を<br/>
満たした場合のみ、<br/>
条件を満たした事になります。<br/><br/>

下記は④の判定処理ですが、<br/>
ANDを使っている為、<br/>
変数workが80以上かつ100以下という<br/>
二つの条件を満たす必要があります。<br/><br/>

ElseIf 80 <= work And work <= 100 Then<br/><br/>

AND演算子に対し、OR演算子があり、<br/>
こちらは、二つの条件のうちどちらか<br/>
一つでも満たせば、条件を満たした<br/>
事になります。<br/><br/>

AND演算子、OR演算子についても、<br/>
ヘルプファイル等で調べてみてください。<br/><br/>

ではまた・・・<br/>
<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://match.seesaa.jp/ot_listing.pl?aid=476781&amp;sid=easy-excel&amp;tid=seesaa_hotspot&amp;k=%E9%A8%92%E9%9F%B3%E8%A6%8F%E5%88%B6&amp;hid=35">
<link>http://match.seesaa.jp/ot_listing.pl?aid=476781&amp;sid=easy-excel&amp;tid=seesaa_hotspot&amp;k=%E9%A8%92%E9%9F%B3%E8%A6%8F%E5%88%B6&amp;hid=35</link>
<title>[PR]注目のキーワード「騒音規制」</title>
<description><![CDATA[
<a href="http://match.seesaa.jp/ot_listing.pl?aid=476781&sid=easy-excel&tid=seesaa_hotspot&k=%E8%A6%8F%E5%88%B6&hid=35">規制</a>&nbsp;|&nbsp;<a href="http://match.seesaa.jp/ot_listing.pl?aid=476781&sid=easy-excel&tid=seesaa_hotspot&k=%E7%94%9F%E7%94%A3%E7%B5%82%E4%BA%86&hid=35">生産終了</a>&nbsp;|&nbsp;<a href="http://match.seesaa.jp/ot_listing.pl?aid=476781&sid=easy-excel&tid=seesaa_hotspot&k=%E3%83%90%E3%82%A4%E3%82%AF&hid=35">バイク</a>&nbsp;|&nbsp;<a href="http://match.seesaa.jp/ot_listing.pl?aid=476781&sid=easy-excel&tid=seesaa_hotspot&k=%E5%BD%B1%E9%9F%BF&hid=35">影響</a>&nbsp;|&nbsp;<a href="http://match.seesaa.jp/ot_listing.pl?aid=476781&sid=easy-excel&tid=seesaa_hotspot&k=%E6%8E%92%E5%87%BA%E3%82%AC%E3%82%B9%E8%A6%8F%E5%88%B6&hid=35">排出ガス規制</a>&nbsp;|&nbsp;<a href="http://match.seesaa.jp/ot_listing.pl?aid=476781&sid=easy-excel&tid=seesaa_hotspot&k=%E4%BA%8C%E8%BC%AA&hid=35">二輪</a>&nbsp;|&nbsp;<a href="http://match.seesaa.jp/ot_listing.pl?aid=476781&sid=easy-excel&tid=seesaa_hotspot&k=%E3%82%AF%E3%83%AA%E3%82%A2&hid=35">クリア</a>&nbsp;|&nbsp;<a href="http://match.seesaa.jp/ot_listing.pl?aid=476781&sid=easy-excel&tid=seesaa_hotspot&k=%E3%83%9E%E3%83%95%E3%83%A9%E3%83%BC&hid=35">マフラー</a>&nbsp;|&nbsp;<a href="http://match.seesaa.jp/ot_listing.pl?aid=476781&sid=easy-excel&tid=seesaa_hotspot&k=%E3%83%A2%E3%83%87%E3%83%AB&hid=35">モデル</a>&nbsp;|&nbsp;<a href="http://match.seesaa.jp/ot_listing.pl?aid=476781&sid=easy-excel&tid=seesaa_hotspot&k=%E8%BC%B8%E5%85%A5%E8%BB%8A&hid=35">輸入車</a>
]]></description>
<dc:date>2008-01-12T13:48:41+09:00</dc:date>
<dc:creator>ads by Seesaa</dc:creator>
</item>
<item rdf:about="http://easy-excel.seesaa.net/article/77323108.html">
<link>http://easy-excel.seesaa.net/article/77323108.html</link>
<title>第25回複数条件のIf文</title>
<description>第５回では、入力した数値が70以上なら合格、70未満なら不合格という判定でした。今回は以下の４段階評価を行います。・・・①80 ～ 100  優60 ～  79  良30 ～  59  可 0 ～  29  不可さらに今回は以下のエラー処理も追加します。・・・②未入力またはブランク入力時、未入力エラー数字でない文字列混入時、文字列混入エラー少数混入時、少数混入エラー0～100ではない整数混入時、範囲外エラー[初期設定]ファイル名:Book1.xlsシート名:Sheet1下記の...</description>
<dc:subject>日記</dc:subject>
<dc:creator>ぷろぐらまー</dc:creator>
<dc:date>2008-01-09T05:55:33+09:00</dc:date>
<content:encoded><![CDATA[
第５回では、入力した数値が<br/>
70以上なら合格、70未満なら不合格<br/>
という判定でした。<br/>

<script type="text/javascript"><!--
google_ad_client = "pub-0675261845573011";
//005 250x250, 作成済み 07/12/07
google_ad_slot = "4996813865";
google_ad_width = 250;
google_ad_height = 250;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br/>


今回は以下の４段階評価を行います。・・・①<br/><br/>

80 ～ 100  優<br/>
60 ～  79  良<br/>
30 ～  59  可<br/>
 0 ～  29  不可<br/><br/>

さらに今回は以下のエラー処理も追加します。・・・②<br/><br/>

未入力またはブランク入力時、未入力エラー<br/>
数字でない文字列混入時、文字列混入エラー<br/>
少数混入時、少数混入エラー<br/>
0～100ではない整数混入時、範囲外エラー<br/><br/><br/>


[初期設定]<br/>
ファイル名:Book1.xls<br/>
シート名:Sheet1<br/>
下記の値を設定する<br/>
1行A列:35<br/><br/>

[マクロの処理]<br/>
1行A列の値を判定し、判定結果を1行B列に設定する。<br/>
判定方法は上記①と②を参照して下さい。<br/><br/>

まずは、下記のMacro1を作成して下さい。<br/><br/>

Sub Macro1()<br/>
'<br/>
' Macro1 Macro<br/>
' マクロ記録日 : 2008/01/09 ユーザー名 :<br/>
'<br/>
<br/>
'1行1列の値を変数workに格納<br/>
Dim work As String<br/>
work = Trim(Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 1))<br/><br/>

'workの値を判定し、判定結果を1行2列に格納<br/>
If "" = work Then<br/>
    '未入力またはブランク入力時<br/>
    Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 2) = "未入力エラー"<br/>
ElseIf False = IsNumeric(Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 1)) Then<br/>
    '文字列混入時<br/>
    Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 2) = "文字列混入エラー"<br/>
ElseIf 0 <> InStr(1, work, ".", vbTextCompare) Then<br/>
    '少数混入時<br/>
    Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 2) = "少数混入エラー"<br/>
ElseIf 80 <= work And work <= 100 Then<br/>
    '80～100の整数値<br/>
    Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 2) = "優"<br/>
ElseIf 60 <= work And work <= 79 Then<br/>
    '60～79の整数値<br/>
    Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 2) = "良"<br/>
ElseIf 30 <= work And work <= 59 Then<br/>
    '30～59の整数値<br/>
    Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 2) = "可"<br/>
ElseIf 0 <= work And work <= 29 Then<br/>
    '0～29の整数値<br/>
    Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 2) = "不可"<br/>
Else<br/>
    '0～100ではない整数値<br/>
    Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 2) = "範囲外エラー"<br/>
End If<br/><br/><br/><br/>



End Sub<br/><br/>

1行A列に35を設定し、マクロを実行してみて下さい。<br/>
1行B列に"可"が設定される事を確認して下さい。<br/><br/>

1行A列にあらゆる値を設定して、<br/>
仕様どうりに動作しているか確認して下さい。<br/><br/>

ソースコードについては、次回説明します。<br/><br/>

ではまた・・・<br/>
<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://easy-excel.seesaa.net/article/76248355.html">
<link>http://easy-excel.seesaa.net/article/76248355.html</link>
<title>第24回マクロの環境設定の説明</title>
<description>今回は前回作成したマクロの説明をします。前回作成したマクロは、判定条件である70、表示文字列である合格、不合格をシート上で設定しています。その為、判定条件や表示文字列を変更する場合、シート上に設定した値を変更するだけです。ただ、変更しやすい反面、だれかにいじられる可能性も高くなります。ソースコードについては、シート上で設定した値を変数に格納して処理を行っています。定数ではなく変数を使う理由は、定数はシート上で設定した値を格納できないからです。尚、判定条件や表示文字列を格納する...</description>
<dc:subject>日記</dc:subject>
<dc:creator>ぷろぐらまー</dc:creator>
<dc:date>2008-01-03T20:28:08+09:00</dc:date>
<content:encoded><![CDATA[
今回は前回作成したマクロの説明をします。<br/>

<script type="text/javascript"><!--
google_ad_client = "pub-0675261845573011";
//005 250x250, 作成済み 07/12/07
google_ad_slot = "4996813865";
google_ad_width = 250;
google_ad_height = 250;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br/>

前回作成したマクロは、判定条件である70、<br/>
表示文字列である合格、不合格を<br/>
シート上で設定しています。<br/><br/>

その為、判定条件や表示文字列を変更する場合、<br/>
シート上に設定した値を変更するだけです。<br/><br/>

ただ、変更しやすい反面、だれかにいじられる<br/>
可能性も高くなります。<br/><br/>

ソースコードについては、シート上で設定した値を<br/>
変数に格納して処理を行っています。<br/><br/>

定数ではなく変数を使う理由は、<br/>
定数はシート上で設定した値を格納できないからです。<br/><br/>

尚、判定条件や表示文字列を格納する場所として、<br/>
テキストファイル、データベース等もあります。<br/><br/>

状況に応じて使い分けて下さい。<br/><br/>

ではまた・・・<br/>
<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://easy-excel.seesaa.net/article/76116500.html">
<link>http://easy-excel.seesaa.net/article/76116500.html</link>
<title>第23回マクロの環境設定</title>
<description>前回は、修正しやすいマクロを作るために定数を使いました。今回はさらに修正が簡単な方法として、ワークシート上で値を設定します。[初期設定]ファイル名:Book1.xlsシート名:環境設定下記の値を設定する1行A列:合格基準点           B列:702行A列:合格時のメッセージ   B列:合格3行A列:不合格時のメッセージ B列:不合格ファイル名:Book1.xlsシート名:Sheet1下記の値を設定する1行A列:35[マクロの処理]Sheet1の1行A列の数字が、環境設...</description>
<dc:subject>日記</dc:subject>
<dc:creator>ぷろぐらまー</dc:creator>
<dc:date>2008-01-03T02:02:20+09:00</dc:date>
<content:encoded><![CDATA[
<script type="text/javascript"><!--
google_ad_client = "pub-0675261845573011";
//005 250x250, 作成済み 07/12/07
google_ad_slot = "4996813865";
google_ad_width = 250;
google_ad_height = 250;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br/>

前回は、修正しやすいマクロを作るために<br/>
定数を使いました。<br/><br/>

今回はさらに修正が簡単な方法として、<br/>
ワークシート上で値を設定します。<br/><br/>

[初期設定]<br/>
ファイル名:Book1.xls<br/>
シート名:環境設定<br/>
下記の値を設定する<br/>
1行A列:合格基準点           B列:70<br/>
2行A列:合格時のメッセージ   B列:合格<br/>
3行A列:不合格時のメッセージ B列:不合格<br/><br/>

ファイル名:Book1.xls<br/>
シート名:Sheet1<br/>
下記の値を設定する<br/>
1行A列:35<br/><br/>

[マクロの処理]<br/>
Sheet1の1行A列の数字が、環境設定の1行B列の数値未満<br/>
ならSheet1の1行B列に環境設定の3行B列の値を設定、<br/><br/>

Sheet1の1行A列の数字が環境設定の1行B列の数値以上<br/>
ならSheet1の1行B列に環境設定の2行B列の値を設定する。<br/><br/><br/>


まずは、下記のMacro1を作成して下さい。<br/><br/>

Sub Macro1()<br/>
'<br/>
' Macro1 Macro<br/>
' マクロ記録日 : 2007/01/03 ユーザー名 :<br/>
'<br/>
<br/>
'***********  環境設定  ***********<br/>
'合格基準点<br/>
Dim hantei As Integer<br/>
hantei = Workbooks("book1.xls").Worksheets("環境設定").Cells(1, 2)<br/>
'合格時のメッセージ<br/>
Dim ok_word As String<br/>
ok_word = Workbooks("book1.xls").Worksheets("環境設定").Cells(2, 2)<br/>
'不合格時のメッセージ<br/>
Dim ng_word As String<br/>
ng_word = Workbooks("book1.xls").Worksheets("環境設定").Cells(3, 2)<br/>
'***********************************<br/><br/>

'判定処理<br/>
If hantei <= Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 1) Then<br/>
    Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 2) = ok_word<br/>
Else<br/>
    Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 2) = ng_word<br/>
End If<br/><br/><br/>


End Sub<br/><br/>

マクロを実行して処理を確認してみて下さい。<br/><br/>

シート(環境設定)で設定した値を変えることによって、<br/>
処理結果が変わる事を確認してみて下さい。<br/><br/>

ソースコードについては、次回説明します。<br/><br/>

ではまた・・・<br/>
<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://easy-excel.seesaa.net/article/75705587.html">
<link>http://easy-excel.seesaa.net/article/75705587.html</link>
<title>第22回定数を使った処理の説明</title>
<description>今回は前回作成したマクロの説明をします。前回作成したマクロは、1行1列に入力した数値が70以上なら合格、70未満なら不合格と表示します。(第５回と同じ処理です)現状は70以上で合格となるわけですが、例えば、30以上で及第点、30未満で落第点とマクロの仕様を変える必要になるかもしれません。仕様変更が必要となった場合、当然ソースコードの修正が必要となります。第５回のソースコードであれば、ソースコードの解析が必要となります。前回のソースコードであれば、ソースコードの解析は必要ありま...</description>
<dc:subject>日記</dc:subject>
<dc:creator>ぷろぐらまー</dc:creator>
<dc:date>2007-12-31T19:10:01+09:00</dc:date>
<content:encoded><![CDATA[
今回は前回作成したマクロの説明をします。<br/>

<script type="text/javascript"><!--
google_ad_client = "pub-0675261845573011";
//005 250x250, 作成済み 07/12/07
google_ad_slot = "4996813865";
google_ad_width = 250;
google_ad_height = 250;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br/>

前回作成したマクロは、1行1列に入力した数値が<br/>
70以上なら合格、70未満なら不合格と表示します。<br/>
(第５回と同じ処理です)<br/><br/>

現状は70以上で合格となるわけですが、<br/>
例えば、30以上で及第点、30未満で落第点<br/>
とマクロの仕様を変える必要になるかもしれません。<br/><br/>

仕様変更が必要となった場合、当然ソースコードの<br/>
修正が必要となります。<br/><br/>

第５回のソースコードであれば、ソースコードの解析<br/>
が必要となります。<br/><br/>

前回のソースコードであれば、ソースコードの解析は<br/>
必要ありません。<br/>
定数に設定した値を変えるだけで十分です。<br/><br/>

具体的には、前回のマクロの下記部分<br/><br/>

'*********** 環境設定 ***********<br/>
'合格基準点<br/>
Const hantei As Integer = 70<br/>
'合格時のメッセージ<br/>
Const ok_word As String = "合格"<br/>
'不合格時のメッセージ<br/>
Const ng_word As String = "不合格"<br/>
'***********************************<br/><br/>

を次のように変更するだけです。<br/><br/>

'*********** 環境設定 ***********<br/>
'合格基準点<br/>
Const hantei As Integer = 30<br/>
'合格時のメッセージ<br/>
Const ok_word As String = "及第点"<br/>
'不合格時のメッセージ<br/>
Const ng_word As String = "落第点"<br/>
'***********************************<br/><br/>

定数は変数に似ていますが、<br/>
①宣言時にConstを先頭につける<br/>
②宣言時に値を代入する<br/>
③宣言時に代入した値を別の値に代入しなおす事<br/>
はできない<br/><br/>

といった点で変数と異なります。<br/><br/>

第５回の時には、判定条件である70、<br/>
表示文字列である合格、不合格をそのまま<br/>
ソースコードとして記述していましたが、<br/>
前回の様に定数とする事でソースコードの解析の<br/>
必要がなくなりました。<br/><br/>

修正しやすいマクロを作成するために<br/>
定数を活用してみて下さい。<br/><br/>

ではまた・・・<br/>
<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://easy-excel.seesaa.net/article/75541448.html">
<link>http://easy-excel.seesaa.net/article/75541448.html</link>
<title>第21回定数</title>
<description>マクロを作成した後も、マクロの修正作業は起こりえます。マクロの作成時には、後々の修正作業についても考慮すべきです。今回はマクロの修正を簡単にする為、定数を使ってみます。下記マクロは第５回のマクロと全く同じ処理内容ですが、定数を使っています。Sub Macro1()'' Macro1 Macro' マクロ記録日 : 2007/12/30 ユーザー名 :''***********  環境設定  ***********'合格基準点Const hantei As Integer = ...</description>
<dc:subject>日記</dc:subject>
<dc:creator>ぷろぐらまー</dc:creator>
<dc:date>2007-12-30T21:37:26+09:00</dc:date>
<content:encoded><![CDATA[
マクロを作成した後も、マクロの修正作業は起こりえます。<br/><br/>

マクロの作成時には、<br/>
後々の修正作業についても考慮すべきです。<br/>

<script type="text/javascript"><!--
google_ad_client = "pub-0675261845573011";
//005 250x250, 作成済み 07/12/07
google_ad_slot = "4996813865";
google_ad_width = 250;
google_ad_height = 250;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br/>

今回はマクロの修正を簡単にする為、定数を使ってみます。<br/><br/>

下記マクロは第５回のマクロと全く同じ処理内容ですが、<br/>
定数を使っています。<br/><br/>

Sub Macro1()<br/>
'<br/>
' Macro1 Macro<br/>
' マクロ記録日 : 2007/12/30 ユーザー名 :<br/>
'<br/>
<br/>
'***********  環境設定  ***********<br/>
'合格基準点<br/>
Const hantei As Integer = 70<br/>
'合格時のメッセージ<br/>
Const ok_word As String = "合格"<br/>
'不合格時のメッセージ<br/>
Const ng_word As String = "不合格"<br/>
'***********************************<br/><br/>

'判定処理<br/>
If hantei <= Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 1) Then<br/>
    Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 2) = ok_word<br/>
Else<br/>
    Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 2) = ng_word<br/>
End If<br/><br/><br/>


End Sub<br/><br/>

マクロを実行し、第５回と同じ処理内容である事を<br/>
確認して下さい。<br/><br/>

ソースコードについては、次回説明します。<br/><br/>

ではまた・・・<br/>
<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://easy-excel.seesaa.net/article/74997238.html">
<link>http://easy-excel.seesaa.net/article/74997238.html</link>
<title>第20回マクロの動作確認</title>
<description>マクロを作成した後、当然動作確認をする必要があります。今回は、第18回の重複エラーチェック処理のテスト方法を考えてみます。このマクロは最初に1行1列が未入力かチェックを行います。その為、下記のテストケースが必要です。①1行1列が未入力の場合②1行1列にスペースのみ入力されていた場合次に1行1列に文字列が入力されていた場合は、F列に同じ文字列が存在するか検索します。その為、検索できなかった場合と検索できた場合のそれぞれについてテストケースを考えます。F列から検索できなかった場合...</description>
<dc:subject>日記</dc:subject>
<dc:creator>ぷろぐらまー</dc:creator>
<dc:date>2007-12-27T21:51:12+09:00</dc:date>
<content:encoded><![CDATA[
マクロを作成した後、<br/>
当然動作確認をする必要があります。<br/>

<script type="text/javascript"><!--
google_ad_client = "pub-0675261845573011";
//005 250x250, 作成済み 07/12/07
google_ad_slot = "4996813865";
google_ad_width = 250;
google_ad_height = 250;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br/>

今回は、第18回の重複エラーチェック処理の<br/>
テスト方法を考えてみます。<br/><br/>

このマクロは最初に1行1列が未入力か<br/>
チェックを行います。<br/>
その為、下記のテストケースが必要です。<br/>
①1行1列が未入力の場合<br/>
②1行1列にスペースのみ入力されていた場合<br/><br/>

次に1行1列に文字列が入力されていた場合は、<br/>
F列に同じ文字列が存在するか検索します。<br/><br/>

その為、検索できなかった場合と検索できた場合の<br/>
それぞれについてテストケースを考えます。<br/><br/>

F列から検索できなかった場合として、<br/>
下記テストケースが必要です。<br/>
③F列が0件の場合<br/>
④F列が1件の場合<br/>
⑤F列が2件の場合<br/><br/>

また、F列から検索できた場合として、<br/>
下記テストケースが必要です。<br/>
⑥1行1列とF列の1行目が同じ文字列の場合<br/>
⑦1行1列とF列の2行目が同じ文字列の場合<br/>
(⑦のF列の1行目は1行1列とは別の文字列を設定する)<br/><br/>

①～⑦までのテストケースは最低限必要だと思います。<br/><br/>

ではまた・・・<br/>
<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://easy-excel.seesaa.net/article/74452765.html">
<link>http://easy-excel.seesaa.net/article/74452765.html</link>
<title>第19回重複エラーチェックの説明</title>
<description>前回作成した重複エラーチェックのソースコードについて説明します。Sub Macro1()'' Macro1 Macro' マクロ記録日 : 2007/12/23  ユーザー名 :''重複チェックする文字列を格納するDim chk_word As Stringchk_word = Trim(Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 1))'1行1列が未入力またはブランクの場合、エラーメッセージを出力、処理終了If ...</description>
<dc:subject>日記</dc:subject>
<dc:creator>ぷろぐらまー</dc:creator>
<dc:date>2007-12-24T19:44:48+09:00</dc:date>
<content:encoded><![CDATA[
前回作成した重複エラーチェックのソースコード<br/>
について説明します。<br/>

<script type="text/javascript"><!--
google_ad_client = "pub-0675261845573011";
//005 250x250, 作成済み 07/12/07
google_ad_slot = "4996813865";
google_ad_width = 250;
google_ad_height = 250;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br/>

Sub Macro1()<br/>
'<br/>
' Macro1 Macro<br/>
' マクロ記録日 : 2007/12/23  ユーザー名 :<br/>
'<br/>
<br/>
'重複チェックする文字列を格納する<br/>
Dim chk_word As String<br/>
chk_word = Trim(Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 1))<br/><br/>

'1行1列が未入力またはブランクの場合、エラーメッセージを出力、処理終了<br/>
If "" = chk_word Then<br/>
    MsgBox "1行1列が未入力です", vbOKOnly, "エラーメッセージ"<br/>
    Exit Sub<br/>
End If<br/><br/>

'F列検索用ループカウンタ<br/>
Dim ctr As Long<br/>
ctr = 1<br/><br/>

'F列を1行目からデータが無くなるまで検索<br/>
Do Until "" = Trim(Workbooks("book1.xls").Worksheets("sheet1").Cells(ctr, 6))<br/>
    '1行1列と同じデータがF列にあったらエラーメッセージを出力、処理終了<br/>
    If chk_word = Trim(Workbooks("book1.xls").Worksheets("sheet1").Cells(ctr, 6)) Then<br/>
        MsgBox "既に登録済みです", vbOKOnly, "エラーメッセージ"<br/>
        Exit Sub<br/>
    End If<br/>
    ctr = ctr + 1<br/>
Loop<br/><br/>

MsgBox "登録可能です", vbOKOnly, "インフォメーション"<br/><br/>

End Sub<br/><br/>

上記が重複エラーチェックのソースコードです。<br/><br/>

最初に行う処理は、String型の変数chk_wordの宣言と、<br/>
chk_wordに1行1列の値を格納する事です。<br/><br/>

String型の変数chk_wordを可変長で宣言しているので<br/>
約２０億個までの文字を格納できます。<br/><br/>

変数のサイズは、格納した文字列の長さにより変化します。<br/>
文字数 x 2byte + 10byte<br/><br/>

String型には固定長で宣言する事もできます。<br/><br/>

Dim chk_word As String * 30<br/>
上記の様に宣言すると、変数のサイズは、<br/>
30 x 2byte = 60byteとなり、<br/>
可変長の70バイトより小さくて済みますが、<br/>
30文字未満の文字列を<br/>
格納した場合でも文字列の後ろをブランクで<br/>
埋めて30文字にして格納しますし、<br/>
30文字を超える文字列を格納した場合、<br/>
文字列の左から30文字しか格納されません。<br/><br/>

処理内容に応じて固定長にするか可変長にするか<br/>
判断して下さい。<br/>
尚、固定長の場合、65526文字までが限界です。<br/><br/>

次に1行1列の内容が未入力またはブランクでないか<br/>
チェックします。<br/><br/>

1行1列に文字列が無いとこのマクロを実行する意味が<br/>
無いので、ここでチェックしています。<br/><br/>

1行1列に文字列が入力されていた場合、同じ文字列がF列に<br/>
存在するかチェックします。<br/><br/>

具体的には、F列の1行目から2行目、3行目と<br/>
F列が空になるまで処理を繰り返し、<br/>
1行1列と同じ文字列があれば、既に存在していると<br/>
判断し、エラーメッセージ出力、処理終了となります。<br/><br/>

F列が空になるまで処理を繰り返しても<br/>
1行1列と同じ文字列がF列にない場合、<br/>
重複チェックエラーとはならず。<br/>
登録可能です<br/>
とメッセージを表示し、処理終了します。<br/><br/>

ではまた・・・<br/>
<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://easy-excel.seesaa.net/article/74232005.html">
<link>http://easy-excel.seesaa.net/article/74232005.html</link>
<title>第18回重複エラーチェック</title>
<description>前回、前々回とエラーチェックについて説明しました。今回は重複チェックを行います。たとえばメールアドレスの設定時、正しく入力しても既に使われてしまっている場合、設定できません。今回は入力した文字列が既に登録済みかチェックするマクロを作成します。[初期設定]ファイル名:Book1.xlsシート名:Sheet1下記の値を設定する1行A列:あああ1行F列:あああ2行F列:いいい3行F列:ううう4行F列:えええ5行F列:おおお[マクロの処理]まずは、1行A列が入力されているかチェックす...</description>
<dc:subject>日記</dc:subject>
<dc:creator>ぷろぐらまー</dc:creator>
<dc:date>2007-12-23T13:16:19+09:00</dc:date>
<content:encoded><![CDATA[
前回、前々回とエラーチェックについて説明しました。<br/>
今回は重複チェックを行います。<br/>

<script type="text/javascript"><!--
google_ad_client = "pub-0675261845573011";
//005 250x250, 作成済み 07/12/07
google_ad_slot = "4996813865";
google_ad_width = 250;
google_ad_height = 250;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br/>


たとえばメールアドレスの設定時、<br/>
正しく入力しても既に使われてしまっている場合、<br/>
設定できません。<br/><br/>

今回は入力した文字列が既に登録済みか<br/>
チェックするマクロを作成します。<br/><br/>

[初期設定]<br/>
ファイル名:Book1.xls<br/>
シート名:Sheet1<br/>
下記の値を設定する<br/>
1行A列:あああ<br/><br/>

1行F列:あああ<br/>
2行F列:いいい<br/>
3行F列:ううう<br/>
4行F列:えええ<br/>
5行F列:おおお<br/><br/>

[マクロの処理]<br/>
まずは、1行A列が入力されているかチェックする。<br/>
入力されていない場合、メッセージボックスで、<br/>
1行1列が未入力です<br/>
と表示し、マクロを終了する。<br/><br/>

1行A列が入力されている場合、<br/>
F列に同じ文字列が存在するかチェックする。<br/><br/>

F列に同じ文字列が存在する場合、<br/>
メッセージボックスで、既に登録済みです<br/>
と表示する。<br/>
F列に同じ文字列が存在しない場合、<br/>
メッセージボックスで、登録可能です<br/>
と表示する。<br/><br/>

まずは、Macro1を下記の様に作成して下さい。<br/><br/>

Sub Macro1()<br/>
'<br/>
' Macro1 Macro<br/>
' マクロ記録日 : 2007/12/23  ユーザー名 :<br/>
'<br/>
<br/>
'重複チェックする文字列を格納する<br/>
Dim chk_word As String<br/>
chk_word = Trim(Workbooks("book1.xls").Worksheets("sheet1").Cells(1, 1))<br/><br/>

'1行1列が未入力またはブランクの場合、エラーメッセージを出力、処理終了<br/>
If "" = chk_word Then<br/>
    MsgBox "1行1列が未入力です", vbOKOnly, "エラーメッセージ"<br/>
    Exit Sub<br/>
End If<br/><br/>

'F列検索用ループカウンタ<br/>
Dim ctr As Long<br/>
ctr = 1<br/><br/>

'F列を1行目からデータが無くなるまで検索<br/>
Do Until "" = Trim(Workbooks("book1.xls").Worksheets("sheet1").Cells(ctr, 6))<br/>
    '1行1列と同じデータがF列にあったらエラーメッセージを出力、処理終了<br/>
    If chk_word = Trim(Workbooks("book1.xls").Worksheets("sheet1").Cells(ctr, 6)) Then<br/>
        MsgBox "既に登録済みです", vbOKOnly, "エラーメッセージ"<br/>
        Exit Sub<br/>
    End If<br/>
    ctr = ctr + 1<br/>
Loop<br/><br/>

MsgBox "登録可能です", vbOKOnly, "インフォメーション"<br/><br/>

End Sub<br/><br/>

マクロを実行すると1行1列の"あああ"が<br/>
既に1行F列に存在する為、<br/>
既に登録済みです<br/>
とメッセージが出力されます。<br/><br/>

1行1列やF列のデータを書き換えて、<br/>
マクロを実行してみて下さい。<br/><br/>

マクロのソースコードについては次回説明します。<br/><br/>

ではまた・・・<br/>
<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://easy-excel.seesaa.net/article/72910723.html">
<link>http://easy-excel.seesaa.net/article/72910723.html</link>
<title>第17回エラーチェックの説明</title>
<description>前回作成したエラーチェックのソースコードについて説明します。Sub Macro1()'' Macro1 Macro' マクロ記録日 : 2007/12/14 ユーザー名 :''過去に行ったチェック処理結果を削除する。'(B列を選択し、セル内の値を削除する)Columns("B:B").SelectSelection.ClearContents'B列のセル幅を18にセットColumns("B:B").ColumnWidth = 18'行カウンタをの宣言Dim gyo_ctr A...</description>
<dc:subject>日記</dc:subject>
<dc:creator>ぷろぐらまー</dc:creator>
<dc:date>2007-12-15T07:17:52+09:00</dc:date>
<content:encoded><![CDATA[
前回作成したエラーチェックのソースコード<br/>
について説明します。<br/>

<script type="text/javascript"><!--
google_ad_client = "pub-0675261845573011";
//005 250x250, 作成済み 07/12/07
google_ad_slot = "4996813865";
google_ad_width = 250;
google_ad_height = 250;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br/>

Sub Macro1()<br/>
'<br/>
' Macro1 Macro<br/>
' マクロ記録日 : 2007/12/14 ユーザー名 :<br/>
'<br/>
<br/>
'過去に行ったチェック処理結果を削除する。<br/>
'(B列を選択し、セル内の値を削除する)<br/>
Columns("B:B").Select<br/>
Selection.ClearContents<br/>
'B列のセル幅を18にセット<br/>
Columns("B:B").ColumnWidth = 18<br/><br/>

'行カウンタをの宣言<br/>
Dim gyo_ctr As Integer<br/><br/>

'1 行目から5行目まで処理を繰り返す。<br/>
For gyo_ctr = 1 To 5<br/>
'数字でなければ、B列に"数字を入力して下さい"を設定する。<br/>
If False = IsNumeric(Trim( _<br/>
Workbooks("book1.xls").Worksheets("sheet1").Cells(gyo_ctr, 1))) Then<br/>
Workbooks("book1.xls").Worksheets("sheet1").Cells(gyo_ctr, 2) = _<br/>
"数字を入力して下さい"<br/>
End If<br/>
Next<br/><br/>

End Sub<br/><br/>

上記がエラーチェックのソースコードです。<br/><br/>

最初に行う処理は、B列に入力されている値の削除と<br/>
B列の幅を18に設定する事です。<br/><br/>

B列に入力されている値を削除することで、<br/>
過去に行ったエラーチェック処理のエラーメッセージを<br/>
削除できます。<br/><br/>

B列の幅を18に設定する事で、エラーメッセージを<br/>
表示するのに十分な幅となります。<br/><br/>

これらの処理はマクロの記録時に手作業を行えば、<br/>
自動生成されます。<br/><br/>

次にエラーをチェックする処理ですが、<br/>
今回の処理は1行目から5行目まで繰り返します。<br/><br/>

第７回で使用したDo Until～Loopを<br/>
使うこともできますが、<br/>
より自然なFor～nextを使います。<br/><br/>

For gyo_ctr = 1 To 5<br/>
  (中略)<br/>
Next<br/>
上記の文は、For文とNext文の間の<br/>
処理を５回繰り返しますが、<br/>
その際、gyo_ctr の値は<br/>
まず1を設定し、処理を繰り返すごとに<br/>
1加算されます。<br/><br/>

For文の中にはIf文が１つあります。<br/>
セルの値をTrim関数で余分なスペースを削除し、<br/>
その値をIsNumeric関数に渡しています。<br/>
IsNumeric関数は渡された値が数字か判断し、<br/>
数字ならTrue、数字でないならFalseを返します。<br/>
この時点で、<br/>
IsNumeric(Trim( _<br/>
Workbooks("book1.xls").Worksheets("sheet1").Cells(gyo_ctr, 1)))<br/>
はTrueかFalseになり、その後、If文の判定が行われます。<br/>
IsNumeric関数がFalseを返していた場合のみ、<br/>
B列にエラーメッセージが設定されます。<br/><br/>

ではまた・・・<br/>
<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
<item rdf:about="http://easy-excel.seesaa.net/article/72740462.html">
<link>http://easy-excel.seesaa.net/article/72740462.html</link>
<title>第16回エラーチェック</title>
<description>例えば、数値データを手入力してもらい、それをマクロで処理するとしましょう。数値データを手入力する時、当然入力ミスが起こりえます。入力ミスについては、可能な限り、マクロでチェックすべきでしょう。今回は、入力したデータが数字であるかチェックするマクロを作成します。[初期設定]ファイル名:Book1.xlsシート名:Sheet1下記の値を設定する1行A列:352行A列:AAA3行A列:1004行A列:あああ5行A列:70R[マクロの処理]1行A列が数字ならなにもしない。1行A列が数...</description>
<dc:subject>日記</dc:subject>
<dc:creator>ぷろぐらまー</dc:creator>
<dc:date>2007-12-14T07:04:45+09:00</dc:date>
<content:encoded><![CDATA[
例えば、数値データを手入力してもらい、<br/>
それをマクロで処理するとしましょう。<br/>

<script type="text/javascript"><!--
google_ad_client = "pub-0675261845573011";
//005 250x250, 作成済み 07/12/07
google_ad_slot = "4996813865";
google_ad_width = 250;
google_ad_height = 250;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><br/>



数値データを手入力する時、<br/>
当然入力ミスが起こりえます。<br/><br/>

入力ミスについては、可能な限り、<br/>
マクロでチェックすべきでしょう。<br/><br/>

今回は、入力したデータが数字であるかチェックする<br/>
マクロを作成します。<br/><br/>

[初期設定]<br/>
ファイル名:Book1.xls<br/>
シート名:Sheet1<br/>
下記の値を設定する<br/>
1行A列:35<br/>
2行A列:AAA<br/>
3行A列:100<br/>
4行A列:あああ<br/>
5行A列:70R<br/><br/>

[マクロの処理]<br/>
1行A列が数字ならなにもしない。<br/>
1行A列が数字でないなら1行B列に<br/>
"数字を入力して下さい"を設定する。<br/><br/>

2行目から5行目も同様の処理を行う。<br/><br/>

まずは、Macro1を下記の様に作成して下さい。<br/><br/>

Sub Macro1()<br/>
'<br/>
' Macro1 Macro<br/>
' マクロ記録日 : 2007/12/14  ユーザー名 :<br/>
'<br/>
<br/>
'過去に行ったチェック処理結果を削除する。<br/>
'(B列を選択し、セル内の値を削除する)<br/>
Columns("B:B").Select<br/>
Selection.ClearContents<br/>
'B列のセル幅を18にセット<br/>
Columns("B:B").ColumnWidth = 18<br/><br/>

'行カウンタをの宣言<br/>
Dim gyo_ctr As Integer<br/><br/>

'1 行目から5行目まで処理を繰り返す。<br/>
For gyo_ctr = 1 To 5<br/>
    '数字でなければ、B列に"数字を入力して下さい"を設定する。<br/>
    If False = IsNumeric(Trim( _<br/>
    Workbooks("book1.xls").Worksheets("sheet1").Cells(gyo_ctr, 1))) Then<br/>
    Workbooks("book1.xls").Worksheets("sheet1").Cells(gyo_ctr, 2) = _<br/>
    "数字を入力して下さい"<br/>
    End If<br/>
Next<br/><br/>

End Sub<br/><br/><br/>


マクロを実行し、処理結果を確認して下さい。<br/><br/>

B列に"数字を入力して下さい"と表示された行は、<br/>
A列を数字に直して再度マクロを実行してみて下さい。<br/><br/>

マクロのソースコードについては次回説明します。<br/><br/>

ではまた・・・<br/>
<a name="more"></a>

]]><![CDATA[
]]></content:encoded>
</item>
</rdf:RDF>
