見出し画像

VBA エキスパートに必要な英語の勉強

VBAを勉強していると、関数名に結構英語が出てくる。
関数やメソッドを丸暗記できてしまう人には「それが勉強と何の関係がある?」といった具合で、別段ハードルにはならないだろう。

一方、自分は根っからの文系で
小学校から在学中は終始国語だけ100点狙えるような学生であったためか、
どうも「この関数名、どうしてこんな名前なんだ?」が気になって仕方がない。

残念ながら、言葉の語源まで教えてくれるVBAの教科書は見つけられなかった。

そこで、納得できない、覚えられない名前に出会ったら
言葉の語源まで調べだした。
VBAエキスパートの合格だけを目指すなら遠回りなのだが、こうでもしないと覚えられないので、むしろ近道だろうと信じて調べた。


StrConv関数

引数に指定した文字列の種類を変換する関数。

大文字が2か所にあることから、
StrとConvが別の単語であろうことが想像ついた。

オンラインゲームをかじっていた身からすると
strとくればstrengths=ちから、というステータスに結び付く。
文脈的に絶対違う。忘れろ忘れろ。

Strは「String」、つまり文字を示す。
Stringは変数の型にも出てくるVBA頻出単語なので、ここまでは良い。

Convを調べたところ、「Convert」がしっくりくるようだった。
意味はその名も「変換」。

なんのことはない。文字を変換する関数という意味で「StrConv」だった。
なるほどな。

ところがこの関数、一筋縄ではいかず、引数まで謎だった。

vbWideはともかく、vbNarrowとは。

vbWideは「全角文字」、vbNarrowは「半角文字」にする引数。

vbがVisual Basicの略称を指すとして、
Wideはなんとなくわかる。文字が「広く」なる。
確かに全角文字ってそういうものだ。

じゃあNarrowってなんなんだ。

残念なことに心当たりがなかったので調べたところ、
「狭く」なることを指すそうだ。
全角文字に比べて文字幅が狭くなるから、半角文字を指す。
なるほど。

Lcase関数、Ucase関数

引数に指定したアルファベットの大文字/小文字変換を行う関数。
LCaseはアルファベットを小文字に、UCaseはアルファベットを大文字にする。

…さっきのvbWideは「ワイドか、広くなるんだな」と納得できたが
LもUも、なんならcaseも何を指すのか、まったくわからず。
ちっとも頭に入ってこなかった。

手掛かりは「大文字/小文字に変換する」関数というところのみ。
ためしに、大文字、小文字を指す英単語を調べた。

小文字 → lowercase letter
大文字 → uppercase letter

完全にこれだ!一気に納得がいった。
調べてよかった。これで覚えていられそうだ。

ちなみに、StrConv関数で小文字や大文字にするときは
「vbLowerCase」「vbUpperCase」と書くらしい。

Narrow(狭く)とWide(広く)という”横に伸び縮みする”動きに対して
Lower(より低い)とUpper(より高い)という”縦に伸び縮みする”イメージ。でいいのか?

うーん。まざりそう。

InStr関数

引数に指定した文字列の中に、検索対象の文字列が何番目にあるかを数値で返すという関数。

これはちょっと変化球。
てっきり「In」もなにかの単語の略称なのだと思っていたが、
ただの「In」、つまり「入れる」とか「入れた中身」を指すと考えたほうがしっくりきた。

InString、つまり「文字列の中」、と解釈すると、関数の意味に通じる。
文字列の中”を検索する関数、と考えられるから。

どうも、検索する関数であることは意味に含まれていないらしい。
検索するだけならFindメソッドがあるからだろうか。

Replace関数

指定された文字を別の文字に置き換える関数。

「置換」操作自体はExcelでもメモ帳でも使わない日はない。
が、置換を英語にすると「Replace」になるのか…
正直、考えたことがなかった。
でも言われてみるとそうだな。まさしく、置き換える、といった意味だな。と、妙に納得した関数。

これ以上は、記事を書くために英語を探し出そうとしてしまうので、
■勉強の邪魔にならないよう、いったんここまで。
また忘れそうな単語が出てきたら記録する。

この記事が気に入ったらサポートをしてみませんか?