【セルの位置を指定する】

 1 rangeのセル番地を直接指定

 2 rangeのセル番地を変数で指定

 3 rangeの行番号と列番号を直接指定

 4 rangeの行番号と列番号を変数で指定

 5 rangeのセル範囲を直接指定

 6 rangeのセル範囲を変数で指定

rangeのセル番地を直接指定

 Python-xlwingsrangeセル番地については二つの指定方法がありますが、

 今回は、その一、rangeオブジェクトの引数となるセル番地

 直接指定する方法により、セルに値を書きこんでみます。


 セル位置セル番地で指定するrangeオブジェクトを紹介します。

T2_1_Img

 xlwingsをつかいPythonでExcelを操作するときは、

 メモリ上にWorkbookオブジェクトを生成して、そのWorkbookを操作します。

 ( 『xlwingsをつかいWorkbookを新規作成しファイル保存』参照 )

T2_2_Img

 次に、sheetオブジェクトを生成して、そのsheetを操作します。

T2_3_Img

 Workbookオブジェクト名を『wb』、sheetオブジェクト名を『st』としておきます。

 予め、ソースコードパネルに

import xlwings

wb = xlwings.Book()

st = wb.sheets[0]

 と記述しておきます。


 そして、セル番地で指定したセルの値にデータを代入します。

 その書式は下記の通りです。

T2_4_Img


 まずは、セル番地A1のセルの値に『直接指定A1』という文字列を代入してみます。

 rangeオブジェクトの引数となるセル番地を’A1’とし、

 そのセルの値に『直接指定A1』を代入するのだから、

 st.range(’A1’).value = "直接指定A1"

 という順次処理1追加します。


 ソースコードパネルは、

import xlwings

wb = xlwings.Book()

st = wb.sheets[0]

st.range(’A1’).value = "直接指定A1"

 となります。


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

Img2_1_1

 セルA1に、『直接指定A1』が書きこまれました。



 次に、セル番地B2のセルの値に『直接指定B2』という文字列を代入してみます。

 rangeオブジェクトの引数となるセル番地を’B2’とし、

 そのセルの値に『直接指定B2』を代入するのだから、

 st.range(’B2’).value = "直接指定B2"

 という順次処理1追加します。


 ソースコードパネルは、

import xlwings

wb = xlwings.Book()

st = wb.sheets[0]

st.range(’B2’).value = "直接指定B2"

 となります。


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

Img2_1_2

 セルB2に、『直接指定B2』が書きこまれました。



 このようにrangeの右側の引数『( )』の中には、セル番地文字列

 指定することになります。

 

 試しに、セル番地を適当な文字列に書きかえて、Pythonプログラムを実行して、

 指定したセルの位置に文字が書きこまれることを確かめてみましょう。

 (1) セルA2に『直接指定A2』を、

 (2) セルB1に『直接指定B1』を、

 (3) セルC3に『直接指定C3』を、代入してみましょう。

演習(1):セルA2の値に『直接指定A2』という文字列を代入


import xlwings

wb = xlwings.Book()

st = wb.sheets[0]

st.range(’A2’).value = "直接指定A2"

 

演習(2):セルB1の値に『直接指定B1』という文字列を代入


import xlwings

wb = xlwings.Book()

st = wb.sheets[0]

st.range(’B1’).value = "直接指定B1"

 

演習(3):セルC3の値に『直接指定C3』という文字列を代入


import xlwings

wb = xlwings.Book()

st = wb.sheets[0]

st.range(’C3’).value = "直接指定C3"

 


 rangeセル番地については二つの指定方法がありますが、

 今回は、その一、rangeオブジェクトの引数となる

 セル番地直接指定する方法を紹介しました。

 

 でも、セル番地を指定するとき、

 rangeオブジェクトの引数:セル番地を直接記述するという手法は、

 マジックナンバーと呼ばれるやり方で、プログラムのメンテナンス上あまりお勧めできません。

 

 では、セル番地直接指定することなく、

 セル番地間接的に指定するにはどうしたらよいのでしょうか。

 これについては、次回『rangeのセル番地を変数で指定』で紹介します。」