【関数・メソッド・プロパティ設定をつかう】

12 指定した行番号と列番号のセル番地を取得

13 特定の文字列を指定文字列に置き換え

14 セル列番号を英字の列名に変換

15 文字列の中で特定の文字の位置インデックスを取得

16 セルの書体を変更

17 セルの文字サイズを変更

18 セルの罫線を変更

文字列の中で特定の文字の位置インデックスを取得

 Pythonのfindメソッドをつかうと、

 対象となる文字列の中で特定の文字があればその位置インデックスを取得することができます。

Img7_5_21

 findメソッドでは、

 対象となる文字列に対して、引数に特定の文字を入れると、

 戻り値として、先頭からの位置インデックスを取得することができます。


 予め、次のようなExcelシート『sheet2』を用意して、

 Excelブック名を『WkBook5.xlsx』として保存します。


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

 findメソッドをつかい対象となる文字列の中で指定した文字を検索し、

 文字列の先頭からの位置インデックスを受け取って、セルD2に格納してみます。

Img7_5_22

xlwingsをインポート

Excelファイル『Wkbook5』をメモリ上に読みこみWorkbookオブジェクト『wb』を生成

Excelシート『sheet2』を読みこみsheetオブジェクト『st』を生成

セルA2の文字列の中でセルC2の文字を検索し文字列の先頭からの位置インデックスを取得、

セルD2の値に格納

 【ソースコードパネル】

import xlwings

wb = xlwings.Book('WkBook5.xlsx')

st = wb.sheets['sheet2']

st.range('D2').value = st.range('A2').value.find(st.range('C2').value)

 それでは、そのPythonプログラムを実行してみます。


Img7_5_23

 findメソッドにより、『セルを思いのままに動かそう』から『』が検索されて、

 セルD2に先頭からの位置インデックス『0』が書きこまれました。



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

 findメソッドをつかい対象となる文字列の中で指定した文字を検索し、

 文字列の先頭からの位置インデックスを受け取って、セルD2に格納してみます。

 先ほどのPythonプログラムを実行してみます。


Img7_5_24

 findメソッドにより、『セルを思いのままに動かそう』から『』が検索されて、

 セルD2に先頭からの位置インデックス『3』が書きこまれました。



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

 findメソッドをつかい対象となる文字列の中で指定した文字を検索し、

 文字列の先頭からの位置インデックスを受け取って、セルD2に格納してみます。

 先ほどのPythonプログラムを実行してみます。


Img7_5_25

 findメソッドにより、『セルを思いのままに動かそう』から『』が検索されて、

 セルD2に先頭からの位置インデックス『9』が書きこまれました。



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

 findメソッドをつかい対象となる文字列の中で指定した文字を検索し、

 文字列の先頭からの位置インデックスを受け取って、セルD2に格納してみます。

 先ほどのPythonプログラムを実行してみます。


Img7_5_26

 findメソッドにより、『セルを思いのままに動かそう』から『』が検索されたけど、

 ヒットしなかったため、セルD2に『-1』が書きこまれました。



 このように、findメソッドをつかえば、文字列の中で特定の文字の位置インデックスを取得することができます。