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

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

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

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

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

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

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

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

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

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

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


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

Img2_5_1

 変数とは、一時的に値を保持するためのデータの入れ物です。

 変数をつかうときは、まず名前を決めます。

 この変数の名前には次のような決まりがあります。

T2_5_Img

 セル範囲を変数で指定するときは、セル範囲の変数名を決めます

 名前の決まりに従えば、変数名はどのようにつけてもかまわないのですが、

 意味のある文字にしておくと、後で見たときにわかりやすいコードになります。

 Pythonでは、変数名を日本語文字にすることもできるため、

 ここでは、セル範囲の変数名を『セル範囲』とします。


 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_6_Img

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

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

Img2_5_2


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

 セル範囲を示す変数セル範囲』に ’A1:C1’ を設定。

 セル範囲変数セル範囲』のセルの値として、『OK』を設定。

セル範囲 = ’A1:C1’

st.range(セル範囲).value = "OK"

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


 ソースコードパネルは、

import xlwings

wb = xlwings.Book()

st = wb.sheets[0]

セル範囲 = ’A1:C1’

st.range(セル範囲).value = "OK"

 となります。


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

Img2_5_3

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



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

 セル範囲を示す変数セル範囲』に ’A2:D2’ を設定。

 セル範囲変数セル範囲』のセルの値として、『OK』を設定。

セル範囲 = ’A2:D2’

st.range(セル範囲).value = "OK"

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


 ソースコードパネルは、

import xlwings

wb = xlwings.Book()

st = wb.sheets[0]

セル範囲 = ’A2:D2’

st.range(セル範囲).value = "OK"

 となります。


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

Img2_5_4

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



 このように、セル範囲を示す値変数に設定しておけば、

 『range(セル範囲).value』のセル範囲変数により指定することができます。

 

 試しに、変数セル範囲』に設定する文字列を適当な値に書きかえて、Pythonプログラムを実行して、

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

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

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

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

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

変数『セル範囲』に、値『B3:E3』を代入

セル『セル範囲』の値に、『OK』を代入

import xlwings

wb = xlwings.Book()

st = wb.sheets[0]

セル範囲 = ’B3:E3’

st.range(セル範囲).value = "OK"

 

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

変数『セル範囲』に、値『C1:C5』を代入

セル『セル範囲』の値に、『OK』を代入

import xlwings

wb = xlwings.Book()

st = wb.sheets[0]

セル範囲 = ’C1:C5’

st.range(セル範囲).value = "OK"

 

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

変数『セル範囲』に、値『A1:E5』を代入

セル『セル範囲』の値に、『OK』を代入

import xlwings

wb = xlwings.Book()

st = wb.sheets[0]

セル範囲 = ’A1:E5’

st.range(セル範囲).value = "OK"

 


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

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

 セル範囲変数で指定する方法を紹介しました。

 

 これで、rangeセル範囲の指定方法が二つ揃いましたので、おさらいします。

 

 その一、セル範囲直接指定

 コードにセル範囲直接記述する方法。

 マジックナンバーと呼ばれるやり方でプログラムのメンテナンス上、非推奨。

 前回『rangeのセル範囲を直接指定』で紹介

 その二、セル範囲変数で指定

 セル範囲を示す変数に、セル範囲を示す文字列を設定する方法。

 プログラムが終了するまでにセル範囲が何回も変わる変動値のときに有効。