0
1

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.

VBA×Python最速仕事術を読んだ内容メモーchapter3

Last updated at Posted at 2020-04-29

###■プログラムを書く前に・・

★今回はVisual Studio Codeを使用

プログラムを書く前に、まずは作業手順の洗い出しから行う。
  ex)サーバーに保存されたExcel売上伝票のデータ一部を抜き取り、システム販売管理システムに転記したい
  手順1/指定のフォルダにあるワークブックを開く
  手順2/売上伝票シートの一部分のデータを選択
  手順3/CSVデータとして吐き出す

※ プログラムの略語のなかでtoを2として略して語呂合わせしたりする

###■使用ライブラリ
import pathlib ⇒標準ライブラリ。ファイルやフォルダーのパスをプログラム中で扱いやすくする
import openpyxl ⇒外部ライブラリ
import SCV ⇒標準ライブラリ。csvファイルを出力するときに使う

ライブラリについて
標準ライブラリはpythonがインストールされたときに同時にインストールされる。
Libフォルダにあるファイルが標準モジュール
外部ライブラリはインストールが別途必要になる。

パッケージとは・・
pythonのモジュール<○○○.py>などの複数のモジュールをまとめたもの。
フォルダでまとまっている
モジュールとは・・
単一のpythonファイルで構成されているもの。いくつかの

CSVファイルにとは
Comma Separated Value(カンマで区切った値)の略
拡張子は.csvでテキストファイルになる。メモ帳などのテキストエディタやVisual Studio Codeなどで開くことができる。
ExcelやAccess、サーバー型データベースなどでデータ取込・出力などが出来る

####■コード解説・まとめ

1wb=openpvx1.workbook() 新規ワークブックを作成する変数
1wb=openpvx1.active アクティブシートを取得する変数
path = pathlib.path("..\data\slaes") パスを指定する変数

for pass_obj in path.interdir():

※".."は相対パスのことで現在のフォルダを基点としてパスの指定をしている

**pass_obj.match("*.xlsx"): ** Excelファイルか調べる動作
wb = openpyxl.load_workbook(pass_obj) ワークブックを読み込む動作
dt_row in range(9,19): セル行の始まりと終わりを指定(19行目は値が返されないので注意)

※Excelの範囲指定について
rangeとcellの二種類
range(列,行)
cell(行,列)

Excelではセル番地をしてするときはA1やG2のような指定の仕方もあるが、
pythonでは、行番号→列番号の順で指定する。また、列番号はアルファベットではなく数字を使うことが多い

\n ⇒改行の意味
* ⇒ワイルドカード 例)pass_obj.match("*.xlsx"):

###■if 条件分岐
ある条件が成り立つか否かで処理をわけることできる関数。
条件がなりたつとき(真=true)のときに<~する>命令文を設定。

if関数
if 条件式:      ※ 末尾にコロンをつける
  命令文1      
  命令文2

※None=何もない

if関数
if pass_obj.match("*.xlsx"):
            wb = openpyxl.load_workbook(pass_obj)
            for sh in wb:
                for dt_row in range(1,1):
                    if sh.cell(dt_row, 1).value != None:  ←これ

else例)特定の条件について正解の場合は"合格"、不正解の場合は"不合格"と設定する場合

if関数(else使用)
score = 100
If score => 100:
     print("合格")
else:
     print("不合格")
if関数(else使用)
score = 100
If socore => 100:
     print("合格")
else:
     print("不合格")
0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?