3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

エクセルのシートを読込 1行ずつループ処理する Python VBA

Last updated at Posted at 2020-05-14

これは エクセルからデータを読み込んで スクレイピングするときの自分用メモです


処理イメージ ※ソースは初心者レベルの簡単に
■300店舗ほどある
■各店舗ごとになにかしらのデータを取得したり、更新したりする
↓ そのために
エクセルにある店番号や、店舗コード,URL,ログインIDなど様々な情報を読み込み
読み込んだ内容でループする(1行ずつ処理)


#Pythonでエクセルのシートを読み込む
※処理イメージ 設定内容をリストにし、1行ずつループする

openpyxlを使いエクセルの設定シートを読みこむ

import openpyxl    #openpyxl を使えるようにする
wb=openpyxl.load_workbook("test.xlsx")
sheet=wb["設定"]    #シート名は設定
C=[]
for row in sheet:
 C.append([col.value for col in row])

#エクセルシートの内容をループで処理していく
#Cは0から始まる 設定シートの1行目は見出しにしているのでループは1から始めている
for i in range(1,len(C)):
 print(C[i][0])
 print(C[i][1])

*Cに設定シートの内容がリストのリストで取れている。
エクセルの1行1行をループで取得し、処理をしていく。

設定シートはA1から始まるきれいな表にすること。そうすればきれいにループできる。

#VBAでエクセルのシートを読み込む
多少複雑だけど、融通が利きます。
Variant型配列に設定シートの内容を読みこみ1行ずつ
ループ処理をする

エクセル設定シートの内容を読みこみ1行ずつループ処理する
Dim CRastRow As Long                         '設定シートの最終行 A列で判断
Dim i as Long
Dim C As Variant
'設定シートのA列の最終行を読み込む
CRastRow = ThisWorkbook.Sheets("設定").Cells(Rows.Count, 1).End(xlUp).Row  

'1行目は見出しのことが多いので、A2からG列最終行までを読み込むとする
C = ThisWorkbook.Sheets("設定").Range("A2:G" & CRastRow)

'ループは1から始まる 1行ずつ処理
For i = 1 To UBound(C)
    Debug.Print(C(i,1)) ’A
    Debug.Print(C(i,2)  B
    
next i








3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?