【関数・メソッド・プロパティ設定をつかう】
6 文字列の文字数を取得
7 文字列のループで1文字ずつ分解
8 文字が入っているセルの最大行を取得
9 文字が入っているセルの最大列を取得
10 行のループで複数の文字列を連続分解
11 列のループで複数の文字列を連続分解
12 指定した行番号と列番号のセル番地を取得
文字が入っているセルの最大列を取得
今回は、Python-xlwingsでendメソッドをつかって文字が入っているセルの最大列を取得してみます。
前回は、最後の行を調べるためにend('up')メソッドをつかいましたが、
今回は、end('left')メソッドをつかって最後の列を調べてみます。
予め、次のようなExcelシート『sheet2』を用意して、
Excelブック名を『WkBook3.xlsx』として保存します。
キーボード操作でセルM7を選択します。
end('left')メソッドをつかって
セルXFD1から1行目の左方向に文字が入っているセルを検索し最初にヒットしたセルを選択します。
st.range('XFD1').end('left').select()
と記述します。
【ソースコードパネル】
import xlwings
wb = xlwings.Book('WkBook3.xlsx')
st = wb.sheets['sheet2']
st.range('XFD1').end('left').select()
それでは、このPythonプログラムを実行してみます。
セルK1が選択されました。
これは、セルXFD1から1行目の左方向に文字が入っているセルを検索し最初にヒットしたセルだからです。
columnメソッドをつかうと、セル番地で指定したセルの列番号を取得できます。
range(セル番地).end('left')メソッドとcolumnメソッドを組み合わせることで、
指定したセル番地と同じ行の左方向に文字が入っているセルを検索し最初にヒットしたセルの列番号を取得
することができます。
上記コードで1行目の文字が入っているセルの最大列を取得できます。
早速、range(セル番地).end('left')メソッドとcolumnメソッドを
組み合わせてつかってみます。
1行目の終端セルの列番号を取得して、セルK4に格納します。
st.range('K4').value = st.range('XFD1').end('left').column
と記述します。
併せて上記Python_xlwings_コードを、セルC2に格納します。
st.range('B4').value = “st.range('XFD1').end('left').column"
と記述します。
【ソースコードパネル】
import xlwings
wb = xlwings.Book('WkBook3.xlsx')
st = wb.sheets['sheet2']
st.range('K4').value = st.range('XFD1').end('left').column
st.range('B4').value = "st.range('XFD1').end('left').column"
それでは、そのPythonプログラムを実行してみます。
1行目の文字が入っているセルの最大列番号が取得され、セルB4にそのコード、
セルK4に『11』が書きこまれました。
これは1行目の文字が入っているセルの最大列は、『11』列目ということです。
range(行番号,列番号).end('left')メソッドとcolumnメソッドを組み合わせることで、
指定した行番号と同じ行の左方向に文字が入っているセルを検索し最初にヒットしたセルの列番号を取得
することができます。
上記コードで1行目の文字が入っているセルの最大列を取得できます。
早速、range(行番号,列番号).end('left')メソッドとcolumnメソッドを
組み合わせてつかってみます。
1行目の終端セルの列番号を取得して、セルK5に格納します。
st.range('K5').value = st.range(1,16384).end('left').column
と記述します。
併せて上記Python_xlwings_コードを、セルB5に格納します。
st.range('B5').value = "st.range(1,16384).end('left').column"
と記述します。
【ソースコードパネル】
import xlwings
wb = xlwings.Book('WkBook3.xlsx')
st = wb.sheets['sheet2']
st.range('K5').value = st.range(1,16384).end('left').column
st.range('B5').value = "st.range(1,16384).end('left').column"
それでは、そのPythonプログラムを実行してみます。
1行目の文字が入っているセルの最大列番号が取得され、セルB5にそのコード、
セルK5に『11』が書きこまれました。
これは1行目の文字が入っているセルの最大列は、『11』列目ということです。
cellsオブジェクトとlast_cellオブジェクトとcolumnメソッドを組み合わせることで、
全セルの終端セル(XFD1048576)の列番号を取得することができます。
上記コードで全セルの終端セル(XFD1048576)の列番号を取得できます。
早速、cellsオブジェクトとlast_cellオブジェクトとcolumnメソッドを組み合わせてつかってみます。
全セルの終端セル(XFD1048576)の列番号を取得して、セルK6に格納します。
st.range('K6').value = st.cells.last_cell.column
と記述します。
併せて上記Python_xlwings_コードを、セルB6に格納します。
st.range('B6').value = "st.cells.last_cell.column"
と記述します。
【ソースコードパネル】
import xlwings
wb = xlwings.Book('WkBook3.xlsx')
st = wb.sheets['sheet2']
st.range('K6').value = st.cells.last_cell.column
st.range('B6').value = "st.cells.last_cell.column"
それでは、そのPythonプログラムを実行してみます。
全セルの終端セル(XFD1048576)の列番号が取得され、セルB6にそのコード、
セルK6に『16384』が書きこまれました。
これは全セルの終端セル(XFD1048576)の列番号は、『16384』列目ということです。
range(行番号,全セルの終端セルの列番号).end('left')メソッドとcolumnメソッドを組み合わせることで、
指定した行番号と同じ行の左方向に文字が入っているセルを検索し最初にヒットしたセルの列番号を取得
することができます。
上記コードで1行目の文字が入っているセルの最大列を取得できます。
早速、range(全セルの終端セルの行番号,列番号).end('left')メソッドとcolumnメソッドを
組み合わせてつかってみます。
1行目の終端セルの列番号を取得して、セルK7に格納します。
st.range('K7').value = st.range(st.cells.last_cell.row,1).end('left').column
と記述します。
併せて上記Python_xlwings_コードを、セルB7に格納します。
st.range('B7').value = "st.range(st.cells.last_cell.row,1).end('left').column"
と記述します。
【ソースコードパネル】
import xlwings
wb = xlwings.Book('WkBook3.xlsx')
st = wb.sheets['sheet2']
st.range('K7').value \
= st.range(1,st.cells.last_cell.column).end('left').column
st.range('B7').value \
= "st.range(1,st.cells.last_cell.column).end('left').column"
それでは、そのPythonプログラムを実行してみます。
1行目の文字が入っているセルの最大列番号が取得され、セルB7にそのコード、
セルK7に『11』が書きこまれました。
これは1行目の文字が入っているセルの最大列は、『11』列目ということです。
-
演習:3行目の終端セルの列番号を取得して
セルK2に格納
-
import xlwings
wb = xlwings.Book('WkBook3.xlsx')
st = wb.sheets['sheet2']
st.range('K2').value \
= st.range(3,st.cells.last_cell.column).end('left').column
このように、range(行番号,全セルの終端セルの列番号).end('left')メソッドとcolumnメソッドを
組み合わせることで対象行の文字が入っているセルの最大列を取得することができます。
Excelのセルの最大列については、
ブログ『Excelショートカットキーで最大行・最大列を選択』
をご参照ください。」