本章では、セルの値を加工するための関数やプロパティの設定について学習します。

Left関数、Right関数、Mid関数、Len関数、InStr関数、Replace関数、

End(xlUp)プロパティ、Rowプロパティ、End(xlToLeft)プロパティ、Columnプロパティ、

Addressプロパティ等をつかいこなせば、自由自在にセルの値を加工することができるようになります。

【コンパス】

 1 文字列から一部の文字列を取得してみよう

 2 文字列を1文字ずつ分解してみよう

 3 行のループで複数の文字列を連続分解してみよう

 4 列のループで複数の文字列を連続分解してみよう

 5 セルのアドレスから英字の列名を取得してみよう

 6 文字列の中で特定の文字の位置を取得してみよう

 7 セルの書式を変更してみよう

文字列の中で特定の文字の位置を取得してみよう

パイさん

「今回は、文字列の中で特定の文字があればその位置を取得してみましょう

 文字列の中で特定の文字があればその位置を一瞬で教えてくれる便利な関数があります。

 それが、InStr関数です。InStr関数の構文は、次のようになります。」

Img7_2_51

パイさん

InStr関数では、

 引数:String1に対象となる文字列

 引数:String2に検索したい文字列を入れると、

 対象となる文字列の中で指定した文字を検索し、

 ヒットすれば、戻り値として、文字列の先頭からの位置数

 を受け取ることができます。

 予め、次のようなExcelシートを用意します。

 ExcelのセルA2に『セルを思いのままに動かそう』、セルC2に『』を入れた後、

 InStr関数をつかい対象となる文字列の中で指定した文字を検索し、文字列の先頭からの位置数を受け取って、

 セルD2に格納してみましょう。」

Img7_2_52

ソンくん

「早速、InStr関数をつかってみます。引数としてセルA2・セルC2から取得した文字列を渡してから、

 先頭からの位置数を受け取り、セルD2に格納するのだから、

 左辺には、Range("D2").Value

 右辺には、InStr関数引数:String1にRange("A2").Value、

 引数:String2にRange("C2").Value

 を当てはめれば良いのだから、

 Range("D2").Value = InStr(Range("A2").Value, Range("C2").Value)

 これで良いのでしょうか。」

Sub InStr関数()

 Range("D2").Value = InStr(Range("A2").Value, Range("C2").Value)

End Sub

パイさん

「それでは、そのマクロを実行してみましょう。」

Img7_2_54

ソンくん

InStr関数により、『セルを思いのままに動かそう』から『』が検索されて、セルD2に先頭からの位置『1』が

 書きこまれました。」


パイさん

「ExcelのセルA2に『セルを思いのままに動かそう』、セルC2に『』を入れた後、

 InStr関数をつかい対象となる文字列の中で指定した文字を検索し、文字列の先頭からの位置数を受け取って、

 セルD2に格納してみましょう。先ほどのマクロを実行してみましょう。」

Img7_2_55

ソンくん

InStr関数により、『セルを思いのままに動かそう』から『』が検索されて、セルD2に先頭からの位置『4』が

 書きこまれました。」


パイさん

「ExcelのセルA2に『セルを思いのままに動かそう』、セルC2に『』を入れた後、

 InStr関数をつかい対象となる文字列の中で指定した文字を検索し、文字列の先頭からの位置数を受け取って、

 セルD2に格納してみましょう。先ほどのマクロを実行してみましょう。」

Img7_2_56

ソンくん

InStr関数により、『セルを思いのままに動かそう』から『』が検索されて、セルD2に先頭からの位置『10』が

 書きこまれました。」


パイさん

「ExcelのセルA2に『セルを思いのままに動かそう』、セルC2に『』を入れた後、

 InStr関数をつかい対象となる文字列の中で指定した文字を検索し、文字列の先頭からの位置数を受け取って、

 セルD2に格納してみましょう。先ほどのマクロを実行してみましょう。」

Img7_2_57

ソンくん

InStr関数により、『セルを思いのままに動かそう』から『』が検索されたけど、ヒットしなかったため

 セルD2に『0』が書きこまれました。」


パイさん

「このように、InStr関数をつかえば、文字列の中で特定の文字の位置を取得することができます。」



目 次

1. セルに文字を書きこむ
セルに文字を書きこむ

本章では、Excelマクロによりセルに文字を書きこんでみます。

先ずはキーボードによりセルに文字を直接書きこみ、次にそれをマクロに記録し、

更にそのマクロを書きかえてExcelマクロによりセルに文字を書きこみます。

【コンパス】

 1 セルに文字を書いてみよう

 2 マクロを記録してみよう・記録したマクロを見てみよう

 3 ビジュアルベーシックエディターを開いてみよう

 4 マクロのセキュリティレベルを設定してみよう・マクロを実行してみよう・マクロを保存してみよう

 5 マクロを書きかえて実行してみよう


2. RangeとCellsでセルの位置を指定する
RangeとCellsでセルの位置を指定する

本章では、Rangeオブジェクトのセル番地の指定方法と

Cellsオブジェクトの行番号と列番号の指定方法について学習します。

これらの方法を組み合わせれば、自由自在にセル位置が指定できるようになります。

【コンパス】

 1 新しいマクロをつくってみよう

 2 マクロをコピーして書きかえてみよう

 3 Rangeのセル番地を直接指定してみよう

 4 Rangeのセル番地を定数で指定してみよう

 5 Rangeのセル番地を変数で指定してみよう

 6 Cellsの行番号と列番号を直接指定してみよう

 7 Cellsの行番号と列番号を定数で指定してみよう

 8 Cellsの行番号と列番号を変数で指定してみよう


3. ループ処理でセルに値を書きこむ
ループ処理でセルに値を書きこむ

本章では、ループ処理で多数行のセルに値を書きこむ方法と

ループ処理で多数列のセルに値を書きこむ方法について学習します。

この二つの方法を組み合わせれば、自由自在に多数行×多数列の

セルに値を書きこめるようになります。

【コンパス】

 1 多数のセルの行番号と列番号を直接指定して値を書きこんでみよう

 2 多数のセルの行番号と列番号を変数と定数で指定して値を書きこんでみよう

 3 ループ処理で多数行のセルに値を書きこんでみよう

 4 ループ処理で多数列のセルに値を書きこんでみよう

 5 ループ処理で多数行×多数列のセルに値を書きこんでみよう


4. ループ処理でセルの値を読みとる
ループ処理でセルの値を読みとる

本章では、ループ処理で多数行のセルの値を読みとる方法と

ループ処理で多数列のセルの値を読みとる方法について学習します。

この二つの方法を組み合わせれば、自由自在に多数行×多数列の

セルの値を読みとれるようになります。

【コンパス】

 1 多数のセルの行番号と列番号を直接指定して値を読みとってみよう

 2 多数のセルの行番号と列番号を変数と定数で指定して値を読みとってみよう

 3 ループ処理で多数行のセルの値を読みとってみよう

 4 ループ処理で多数列のセルの値を読みとってみよう

 5 ループ処理で多数行×多数列のセルの値を読みとってみよう


5. ループ処理でセルからセルへ値を代入する
ループ処理でセルからセルへ値を代入する

本章では、ループ処理で多数行のセルからセルへ値を代入する方法と

ループ処理で多数列のセルからセルへ値を代入する方法について学習します。

この二つの方法を組み合わせれば、自由自在に多数行×多数列の

セルからセルへの値の代入ができるようになります。

【コンパス】

 1 セルからセルへ値を代入してみよう

 2 行のループ処理でセルからセルへ値を代入してみよう

 3 列のループ処理でセルからセルへ値を代入してみよう

 4 行×列のループ処理でセルからセルへ値を代入してみよう


6. 条件分岐処理でセルの操作を分ける
条件分岐処理でセルの操作を分ける

本章では、条件分岐処理をつかい条件によって処理を分ける方法について学習します。

If文、If_ElseIf文、If_Else文、And条件のIf文、Or条件のIf文をつかいこなせば、

自由自在に条件分岐処理ができるようになります。

【コンパス】

 1 もしXのときはエックスを実行しよう

 2 もしXのときはエックス、Yのときはワイを実行しよう

 3 もしXのときはエックス、その他のときはその他を実行しよう

 4 もしXかつXのときはエックスを実行しよう

 5 もしXまたはXのときはエックスを実行しよう


7. 関数をつかってセルの値を加工する
関数をつかってセルの値を加工する

本章では、セルの値を加工するための関数やプロパティの設定について学習します。

Left関数、Right関数、Mid関数、Len関数、InStr関数、Replace関数、

End(xlUp)プロパティ、Rowプロパティ、End(xlToLeft)プロパティ、Columnプロパティ、

Addressプロパティ等をつかいこなせば、自由自在にセルの値を加工することが

できるようになります。

【コンパス】

 1 文字列から一部の文字列を取得してみよう

 2 文字列を1文字ずつ分解してみよう

 3 行のループで複数の文字列を連続分解してみよう

 4 列のループで複数の文字列を連続分解してみよう

 5 セルのアドレスから英字の列名を取得してみよう

 6 文字列の中で特定の文字の位置を取得してみよう

 7 セルの書式を変更してみよう


8. 他のレンジ/シート/ブックを更新する
他のレンジ/シート/ブックを更新する

本章では、他のレンジ・他のシート・他のブックの更新方法について学習します。

これらの方法を組み合わせれば、他のRange・他のWorksheets・他のWorkbooksが

自由自在に更新できるようになります。

【コンパス】

 1 他のレンジを更新してみよう

 2 他のシートを更新してみよう

 3 逆Z式並びで更新してみよう

 4 複数シートを更新してみよう

 5 他のブックを更新してみよう

 6 他のブックをオープン・クローズしてみよう

 7 新規ブックを作成し更新してみよう



YouTube

Excelマクロの実用版とデモ版


ブログ