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

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

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

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

4 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列』という文字列を代入


import xlwings

wb = xlwings.Book()

st = wb.sheets[0]

行 = 2

列 = 1

st.range(行,列).value = "変数指定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列』という文字列を代入


import xlwings

wb = xlwings.Book()

st = wb.sheets[0]

行 = 3

列 = 3

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

 


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

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

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

 

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

 

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

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

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

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

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

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

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

 

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

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

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

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




目 次

1. ワークブックを作成する
ワークブックを作成する

2. セルの位置を指定する
セルの位置を指定する

3. ループ処理でセルに値を書きこむ
ループ処理でセルに値を書きこむ

4. ループ処理でセルの値を読みとる
ループ処理でセルの値を読みとる

5. ループ処理でセルからセルへ値を代入する
ループ処理でセルからセルへ値を代入する

6. 条件分岐処理でセルの操作を分ける
条件分岐処理でセルの操作を分ける

7. 関数をつかってセルの値を加工する(未公開)
関数をつかってセルの値を加工する
(未公開)

1 文字列から一部の文字列を取得

2 文字列を1文字ずつ分解

3 行のループで複数の文字列を連続分解

4 列のループで複数の文字列を連続分解

5 セル番地から英字の列名を取得

6 セルの書式を変更


8. 他のレンジ/シート/ブックを更新する(未公開)
他のレンジ/シート/ブックを更新する
(未公開)

1 他のレンジを更新

2 他のシートを更新

3 逆Z式並びで更新

4 複数シートを更新

5 他のブックを更新

6 他のブックをオープン・クローズ

7 新規ブックを作成し更新






YouTube

Excelマクロの実用版とデモ版


ブログ