【セルの位置を指定する】
1 rangeのセル番地を直接指定
2 rangeのセル番地を変数で指定
3 rangeの行番号と列番号を直接指定
4 rangeの行番号と列番号を変数で指定
5 rangeのセル範囲を直接指定
6 rangeのセル範囲を変数で指定
rangeのセル範囲を変数で指定
Python-xlwingsのrangeのセル範囲については二つの指定方法がありますが、
今回は、その二、rangeオブジェクトの引数となるセル範囲を
変数で指定する方法により、セルに値を書きこんでみます。
セル位置をセル範囲で指定するrangeオブジェクトを再び紹介します。
変数とは、一時的に値を保持するためのデータの入れ物です。
変数をつかうときは、まず名前を決めます。
この変数の名前には次のような決まりがあります。
セル範囲を変数で指定するときは、セル範囲の変数名を決めます。
名前の決まりに従えば、変数名はどのようにつけてもかまわないのですが、
意味のある文字にしておくと、後で見たときにわかりやすいコードになります。
Pythonでは、変数名を日本語文字にすることもできるため、
ここでは、セル範囲の変数名を『セル範囲』とします。
xlwingsをつかいPythonでExcelを操作するときは、
メモリ上にWorkbookオブジェクトを生成して、そのWorkbookを操作します。
( 『xlwingsをつかいWorkbookを新規作成しファイル保存』参照 )
次に、sheetオブジェクトを生成して、そのsheetを操作します。
Workbookオブジェクト名を『wb』、sheetオブジェクト名を『st』としておきます。
予め、ソースコードパネルに
import xlwings
wb = xlwings.Book()
st = wb.sheets[0]
と記述しておきます。
それから、変数『セル範囲』に、データ『セル範囲』を、代入します。
変数に値を代入するときは、次のような書式となります。
そして、変数『セル範囲』で指定したセルの値にデータを代入します。
その書式は下記の通りです。
まずは、セル範囲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プログラムを実行してみましょう。
セル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プログラムを実行してみましょう。
セル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のセル範囲を直接指定』で紹介
その二、セル範囲を変数で指定
セル範囲を示す変数に、セル範囲を示す文字列を設定する方法。
プログラムが終了するまでにセル範囲が何回も変わる変動値のときに有効。