IT女子がお届けするオフィスワーク効率化・VBA技術紹介

ノンプログラマーによるノンプログラマーのためのやさしい解説付き

スポンサーリンク

【VBA vs Python】 算術・比較演算子&文字列連結・出力

当カテゴリ「VBA vs Python」の趣旨と対象読者はこちらをご覧ください。

第2回目は「算術・比較演算子」と「文字列の連結と出力」です。
f:id:excel-accounting:20180603201951p:plain:w400

算術演算子

対比表

処理
意味
VBA
Python
足し算
引き算
掛け算
(省略) a + b
a - b
a * b
VBAと同じ
割り算 a を b で割る(小数以下の値も求める) a / b
a を b で割った時の整数部分
(小数以下切り捨て)
a \ b
\は半角の¥
a // b
a を b で割った余り a Mod b a % b
べき乗 a の b 乗 a ^ b a ** b

コード比較

f:id:excel-accounting:20180417150724p:plain

Python解説

・代入演算子について
VBAでは、変数の値を加算するとき、a = a + 10と記述します。
Pythonでは、この記述のほかに、a += 10 という記述方法があります。

(使用例)
f:id:excel-accounting:20180417150811p:plain

ほかにはこのような代入演算子もあります。
減算代入演算子 -=
乗算代入演算子 *=
除算代入演算子 /=

f:id:excel-accounting:20180417150823p:plain:w200

比較演算子

主にIf文などの条件比較で使用する演算子です。

対比表

説明
VBA
Python
a が bより大きい a > b VBAと同じ
a が bより小さい a < b
a が b以上 a >= b
a が b以下 a <= b
a が bと等しい a = b a == b
a が bと等しくない a <> b a !=b

コード比較

f:id:excel-accounting:20180417150838p:plain

Python解説

Pythonの比較演算子は連続して記述することも可能です。
(VBAでは And や Or を使いますね。)
下記の例では、変数a,b,cの大小比較を一行にまとめています。

まず、a < b が比較され、True の場合、次に b < c が比較されます。
・全て True の場合 → True が返る。
・どこか一か所でも False の場合 → その時点で比較は終了し、False が返る。

(使用例)
f:id:excel-accounting:20180417150850p:plain

文字列の連結と出力

文字列同士の連結、文字列と数値の連結、改行方法などの説明です。

対比表

比較内容
VBA
Python
①文字列同士の連結 &で連結する
(+でも可能)
+で連結する
②文字列と数値の連結 &でそのまま連結可能 &では連結不可
・数値型はstr関数で文字列型に変換が必要
・formatメソッドを使用
③文字列の改行 & vbCrLf & \n または '''
④エディタ上のコード改行 半角スペースと_(アンダースコア) \(バックスラッシュ)

VBAで書くと

コード

Sub sample()

    Dim myName As String
    Dim myAge As Long
    Dim myWeight As Double
    Dim myHeight As Long
    
    myName = "さすけ"
    myAge = 1
    myWeight = 8.5
    myHeight = 50
    
    Debug.Print "名前は" + myName & "だよ。"
    Debug.Print "年齢は" & myAge & "才だよ。" & vbCrLf & _
                     "体重は" & myWeight & "キロだよ。" & vbCrLf & _
                     "身長は" & myHeight & "センチだよ。"

End Sub

実行結果
f:id:excel-accounting:20180417150103p:plain

Pythonで書くと

コード

#文字列連結・改行コード

myName = 'さすけ'
myAge = 1
myWeight = 8.5
myHeight = 50

print('-----以下はstr関数を使用-----')
print('名前は' + myName + 'だよ。')
print('年齢は' + str(myAge) + '才だよ。')
print('体重は' + str(myWeight) + 'キロだよ。\n身長は' + str(myHeight) + 'センチだよ。')

print('-----以下はformatメソッド使用-----')
print('名前は{0}だよ。\n年齢は{1}才だよ。\n体重は{2}キロだよ。\n身長は{3}センチだよ。'\
      .format(myName,myAge, myWeight, myHeight))


実行結果
f:id:excel-accounting:20180417150114p:plain:w250

Python解説

・formatメソッド
文字列中に数値を埋め込むときに使用します。
文字列のなかに、0からはじまる整数を{}で囲んで埋め込み、formatメソッドの引数に埋め込みたい値をカンマで区切って並べます。

(使用例)
f:id:excel-accounting:20180417172526p:plain

・文字列の改行コード
(使用例)
f:id:excel-accounting:20180417150133p:plain:w300

・エディタでのコード改行
(使用例)
f:id:excel-accounting:20180417150143p:plain:w400

比較まとめ

演算子
・VBAとPythonの演算子はおおむね一緒なので覚えやすい。
一部異なる点だけ注意して覚えよう。
・Pythonの代入演算子は「a = a + x 」と 「a += x」の2種類の記述方法がある。

文字列
Pythonでは、
・文字列と数値を連結する場合、str関数で数値を文字列型に変換する必要がある。
または、formatメソッドを使用する。
・文字列の改行コードは\n
・エディタでコードを改行するときは\

第2回目は以上です。おつかれさまでした。

↓このカテゴリの続きが気になる方はぜひ読者になってくださいね!

スポンサーリンク