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

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

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

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

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

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

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

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

 Python-xlwingsrange行番号列番号については二つの指定方法がありますが、

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

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


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

T2_11_Img

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

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

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

T2_15_Img

 行番号を変数で指定するときは、行番号の変数名を決めます

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

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

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

 ここでは、行番号の変数名を『』とします。

 また、列番号を変数で指定するときも、列番号の変数名を決めます

 ここでは、列番号の変数名を『』とします。


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

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

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

T2_12_Img

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

T2_13_Img

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

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

import xlwings

wb = xlwings.Book()

st = wb.sheets[0]

 と記述しておきます。


 それから、変数『行』と変数『列』に、データ『行番号』とデータ『列番号』を、代入します。

 変数に値を代入するときは、次のような書式となります。

T2_16_Img

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

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

T2_14_Img


 まずは、1行目・1列目のセルの値に『変数指定1行1列』という文字列を代入してみます。

 行番号を示す変数』に 1 を設定。

 列番号を示す変数』に 1 を設定。

 行番号変数』と列番号変数』のセルの値として、『変数指定1行1列』を設定。

行 = 1

列 = 1

st.range(行,列).value = "変数指定1行1列"

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


 ソースコードパネルは、

import xlwings

wb = xlwings.Book()

st = wb.sheets[0]

行 = 1

列 = 1

st.range(行,列).value = "変数指定1行1列"

 となります。


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

Img2_4_1

 1行目・1列目のセルに、『変数指定1行1列』が書きこまれました。



 次に、2行目・3列目のセルの値に『変数指定2行3列』という文字列を代入してみます。

 行番号を示す変数』に 2 を設定。

 列番号を示す変数』に 3 を設定。

 行番号変数』と列番号変数』のセルの値として、『変数指定2行3列』を設定。

行 = 2

列 = 3

st.range(行,列).value = "変数指定2行3列"

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


 ソースコードパネルは、

import xlwings

wb = xlwings.Book()

st = wb.sheets[0]

行 = 2

列 = 3

st.range(行,列).value = "変数指定2行3列"

 となります。


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

Img2_4_2

 2行目・3列目のセルに、『変数指定2行3列』が書きこまれました。



 このように、セルの行番号列番号を示す値をそれぞれの変数に設定しておけば、

 『range(行番号, 列番号).value』の行番号列番号をそれぞれの変数により指定することができます。

 

 試しに、変数』と変数』に設定する数値を適当な値に書きかえて、Pythonプログラムを実行して、

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

 (1) 2行目・1列目のセルに『変数指定2行1列』を、

 (2) 1行目・2列目のセルに『変数指定1行2列』を、

 (3) 3行目・3列目のセルに『変数指定3行3列』を、代入してみましょう。

演習(1):2行目・1列目のセルの値に『変数指定2行1列』という文字列を代入

変数『行』に、値『2』を代入

変数『列』に、値『1』を代入

行番号が変数『行』と列番号が変数『列』のセルの値に、『変数指定2行1列』を代入

import xlwings

wb = xlwings.Book()

st = wb.sheets[0]

行 = 2

列 = 1

st.range(行,列).value = "変数指定2行1列"

 

演習(2):1行目・2列目のセルの値に『変数指定1行2列』という文字列を代入

変数『行』に、値『1』を代入

変数『列』に、値『2』を代入

行番号が変数『行』と列番号が変数『列』のセルの値に、『変数指定1行2列』を代入

import xlwings

wb = xlwings.Book()

st = wb.sheets[0]

行 = 1

列 = 2

st.range(行,列).value = "変数指定1行2列"

 

演習(3):3行目・3列目のセルの値に『変数指定3行3列』という文字列を代入

変数『行』に、値『3』を代入

変数『列』に、値『3』を代入

行番号が変数『行』と列番号が変数『列』のセルの値に、『変数指定3行3列』を代入

import xlwings

wb = xlwings.Book()

st = wb.sheets[0]

行 = 3

列 = 3

st.range(行,列).value = "変数指定3行3列"

 


 range行番号と列番号については二つの指定方法がありますが、

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

 行番号と列番号変数で指定する方法を紹介しました。

 

 これで、range行番号列番号の指定方法が二つ揃いましたので、おさらいします。

 

 その一、行番号列番号直接指定

 コードに行番号列番号直接記述する方法。

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

 前回『rangeの行番号と列番号を直接指定』で紹介

 その二、行番号列番号変数で指定

 行番号列番号を示す変数に、行番号列番号を示す数値を設定する方法。

 プログラムが終了するまでに行番号列番号が何回も変わる変動値のときに有効。

 

 今までは、rangeオブジェクトをつかい、一つのセル行番号列番号で指定しました。

 では、rangeオブジェクトをつかい、多数のセル行番号列番号で指定するには

 どうしたらよいのでしょうか。

 これについては、『多数のセルの行番号と列番号を直接指定して値を書きこむ』で紹介します。」