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

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

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

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

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

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

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

rangeのセル範囲を直接指定

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

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

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


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

Img2_5_1

 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]

 と記述しておきます。


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

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

Img2_5_2


 まずは、セル範囲A1:C1のセルの値に『OK』という文字列を代入してみます。

 rangeオブジェクトの引数となるセル範囲を’A1:C1’とし、

 そのセルの値に『OK』を代入するのだから、

 st.range(’A1:C1’).value = "OK"

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


 ソースコードパネルは、

import xlwings

wb = xlwings.Book()

st = wb.sheets[0]

st.range(’A1:C1’).value = "OK"

 となります。


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

Img2_5_3

 セルA1:C1に、『OK』が書きこまれました。



 次に、セル範囲A2:D2のセルの値に『OK』という文字列を代入してみます。

 rangeオブジェクトの引数となるセル範囲を’A2:D2’とし、

 そのセルの値に『OK』を代入するのだから、

 st.range(’A2:D2’).value = "OK"

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


 ソースコードパネルは、

import xlwings

wb = xlwings.Book()

st = wb.sheets[0]

st.range(’A2:D2’).value = "OK"

 となります。


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

Img2_5_4

 セルA2:D2に、『OK』が書きこまれました。



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

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

 

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

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

 (1) セルB3:E3に『OK』を、

 (2) セルC1:C5に『OK』を、

 (3) セルA1:E5に『OK』を、代入してみましょう。

演習(1):セルB3:E3の値に『OK』という文字列を代入


import xlwings

wb = xlwings.Book()

st = wb.sheets[0]

st.range(’B3:E3’).value = "OK"

 

演習(2):セルC1:C5の値に『OK』という文字列を代入


import xlwings

wb = xlwings.Book()

st = wb.sheets[0]

st.range(’C1:C5’).value = "OK"

 

演習(3):セルA1:E5の値に『OK』という文字列を代入


import xlwings

wb = xlwings.Book()

st = wb.sheets[0]

st.range(’A1:E5’).value = "OK"

 


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

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

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

 

 でも、セル範囲を指定するとき、

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

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

 

 では、セル範囲直接指定することなく、

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

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