和風スパゲティのレシピ

日本語でコーディングするExcelVBA

英訳してはいけない変数名第3位「専門用語」

今回は日本語変数に関するお話です。


英訳してはいけない変数名第1位「ワークシート」
英訳してはいけない変数名第2位「列見出し名」


ときて、シリーズ最後は「専門用語」です。


最後ははほとんど雑談です。

一応カテゴリをそろえるために「読みやすいコードの書き方」にしていますが、
実践的な話どころか、ソースコードすら出てきませんので予めご了承ください。

健康診断とは

突然ですが、私は医療系企業に勤めております。

ExcelVBAとの相性が良いため、VBAでは「健康診断」を良く扱います。
(私はプログラマでもないし、システム部署でもないため、
 VBAがメインの業務ではないですが)


何故健康診断とVBAの相性が良いかというと、

  • 健康診断は「従業員に受けさせる義務がある企業との契約」が多い
  • 労務を管理する厚労省・監督署とのやりとりも多い
  • これらの企業・団体から指定された、エクセル帳票への印字依頼が多い

からです。


精密検査などに使う高度な医療機器は、事務屋のVBAなんかに頼らなくても、
備え付けのちゃんとしたシステムがついている、というのもありますけどね。



さて「健康診断」を英訳すると何でしょうかね。


「MedicalCheckup」あたりでしょうか。




正解はズバリ!

ありません


「健康診断」に英訳は存在しません。


なぜかというと、

「従業員の受診が企業に義務付けられ、結果を国に提出する必要がある検査」

は、日本固有の制度だからです。


例えばアメリカでは、健康診断は企業関係なく個人が自己責任で受けるもので、
受ける検査もある程度選択制で、そのかわり保険も適用されます。
(そもそも皆保険ではないので、この保険適用というのも日本人のイメージと異なりますが)


ということで、「MedicalCheckup」は↑の「VBAと相性のいい理由」がごっそり消えているので、その単語をVBAで使うのはなんだかなという感じですよね。



要するに、健康診断の英訳はkenkoshindanなんですよ。


日本刀を「Sword」って訳すと、その筋の人はたぶん怒りますよね?


日本刀の英訳は「Katana」です。

「Soldier」ではなく「Samurai」ですし、
「Spy」ではなく「Ninja」なんですよ。


「MedicalCheckup」は、むしろ人間ドックと和訳とした方が、まだニュアンスが近いかもしれません。


と言うことで、業務そのものを指す「健康診断」ですらこの有様です。
もっと細かい用語たちがどうなるかは推して知るべし。


「監督署提出用紙」とか、英訳も面倒ですが、英訳したところで「MedicalCheckup」とは無関係の単語になります。

「ChestXRay」と胸部X線を英訳しても、いまだに結核が流行っているのは日本特有なので、これが結核の集団検診というニュアンスは英語にはありません。

「再検査(保険適用)の対象か判定」する関数も、皆保険でない国の言語で訳すのは不可能といっていいと思います。


とまあこんな感じです。


結局「正確な英訳」なんてものは、世界共通の定義が為される学術的な話でもない限りは存在しないんですよね。

素人的にはよさげな英訳でも、その筋の人が聞いたら怒る英訳なんです。


そんでもって問題は、ExcelVBAを使ってまで業務に携わるみなさんは、
「その筋の人」なんですよ。


なんとなくあっている英訳というのはあるんでしょうけど、
その英訳をしてしまうと、プロ同士で無意識に意思疎通を図っている、
微妙なニュアンスの違いを消失しているのではないかと思います。


ということで、みなさんその道のプロなんですから、プロ同士の意思疎通をいかんなく発揮するためにも、専門用語はそのまま変数名にしましょう。


もちろん海外の人と一緒に仕事をしなければいけない場合は、
しっかりとした対訳表を作ることで対応しなければなりませんし、
その共有を図ったうえでは、その対訳表は「正確な英訳」といっていいと思います。


ですが、その必要がない、携わる人が限定的な事務職ExcelVBAでは、
業務で扱う用語の不用意な英訳は、プロとして培ってきた繊細な読解力を、
喪失してしまうと思います。


まあこの話は、医療業界に務める私の個人的な意見ですけどね。

医療の世界は英単語も聞いたことない物ばっかりだし、国の差も激しすぎて、
英訳してあるマクロのメンテは死にそうになるんですよ(笑)


osteoporosisとか、なんだかわかんないですよね(笑)
骨粗鬆症なんですが。

その意味で、「漢字=表意文字」ってすごいです。
初めて見る単語でも、漢字の意味をつなげれば、どんな病気か多少はわかります。

初見でも「骨がヤバそう」ってのは伝わりますからね。

なので、英訳しないというだけでなく、
ローマ字にもしてほしくないというのが本音です。


ということで、ひとまず医療関係の方には、
Excelマクロは絶対英訳しないでくださいと断言します。

もちろん外国の医療機関と提携してる業務なら別ですが、
そんなグローバルな医療業務が、ExcelVBAという事務屋の時短用プログラミング言語なんかで書かれるのはめったにないように思いますし。



対して他の業界のことは、わからないので偉そうなことは言えません。

もっとグローバルな業界では、「ニュアンスを残す為に和訳するな」的な単語も絶対あると思います。


自分の業界がどれだけグローバルかどうかで判断し、

「あ、これ日本の業務だわ」

と思ったら、その用語のまま変数にすることをおすすめします。

おまけ:経理の仕事でも死にそうになるんですけど…

ブログは「不特定多数の方への情報発信の場」ですので、
読みたいと思ってくださる方に向けて、自分の考えを発信しています。

ということで当たり前ですが、普通に人と接するときには、「日本語変数使え」とか言いません。


他の方のお手伝いや引継ぎをする際は、元の作成者が英語変数を使っている場合は、
そのままの仕様で、なるべく似せたコードを書く努力をします。


まあこれはプログラミングやってる人なら当たり前の話ですよね。

コードの読みやすさって、何よりもまずは「統一感」が大事ですから。

自分の手伝った箇所だけ日本語とか、どう考えても読みづらいので絶対にしません。
目的は読みやすくすることであり、日本語を使うことではありませんから。


ということで英語変数を使ってのお手伝いも普通にやりますが、
医療に匹敵するレベルで死にそうになるのが「経理部」です。


「医療がそうだし、この業務もそうなんじゃないの?」

と、ひそかに睨んでいるのですが、これも「日本の制度の下やってる業務」で、かつ大量の専門用語が飛び交いますよね?


主として携わったことがない業種なので、偉そうなことは言えないのですが、
当人たちも結局ローマ字の変数使いまくってくる気もするので、
開き直って日本語変数使ってほしい業務No1です。


例えば「健診」と「検診」ってみなさん区別できないですよね?

これをCheckupとExaminationにされたら、
それこそもう無理じゃないですか?


素人目線で恐縮ですが、経理・財務・会計関連のお仕事は、こんな感じの用語だらけな印象です。

というかそもそも、経理と財務と会計という、業務自体を指す用語の詳しい線引きすら、我々素人にはわからんのが現実です。


「俺たちの業務は、にわかじこみの英訳で理解できるような業務じゃない」

という誇りを持って、日本語変数を使っていただけると、
日本語の用語すらにわか仕込みの我々は、非常に助かります。


是非ご検討を。

総まとめ

ということで、英訳してはいけないシリーズ3部作を終わります。

ワークシート名」「列見出し名=データの要素名」「専門用語
が日本語変数になりましたね。


他の変数だけ半角英字にすると、逆に不自然ですね?
いっそのこと、全部日本語にする、いい機会かもしれませんよ?


といつもの提案をして、このシリーズは締めます。


ここまでお読みいただきありがとうございました。


ブログのメインテーマに関する記事は、一応揃えておいた方がいいかなと思って書きましたが、予想以上にたくさんの方に読んでいただき、とてもうれしかったです。

日本語変数に関する雑談みたいな記事ばかりじゃなくて、
VBAの解説記事もちゃんと上げていきますので是非お読みください。



最後にひとつだけ。


このブログでやりたいことは、

日本語を使うことができるという選択肢」と、
使い方によってはとても優秀であるというメリット」を、

ひとつのアイデア、ヒントとして提供することです。


↑でもちょっと書きましたが、
「実際に英語変数を使っている人」に対して、
「日本語変数を使った方がいい」なんて意見したことはありません。


心の中で「日本語変数使った方がいいのに」と思っているかというと、
別にそんなこともありません。
思うときもあれば、思わないときもあります。


究極読みやすければ何でもいいと思いますし、読みやすいように工夫されているコードは、何語で書かれていても美しいし読みやすいです。

今回の1,2,3位をすべて破って英訳していても、
微塵も読みづらくないコードを書けるプログラマだってゴロゴロいると思います。


その工夫がまだできない(あるいはできるレベルまで訓練するつもりがない)方は、
母国語使っておけば、簡単に読みやすさを底上げできますよっていう話です。


全員がその底上げを享受すれば効率は上がるでしょうから、マクロな視点では、
みんなが日本語変数を使うとよりよい世の中になるとは思っています。

でもミクロな視点では、慣れ親しんだ英語変数を今更切り替える必要がない人はいっぱいいるでしょうし、その人個人を見て、日本語変数を使った方がいいとは思いません。


要するに、結局は書いた人と書かれたコードによる話なんですよ。
絶対にこれだ!なんて話はないわけです。


こんなサイトを立ち上げておいてなんですが、

英語変数 VS 日本語変数みたいな無益な争いはやめましょう。


個人的に考察して、良いと思った方を使えばいいのです。
他人に強制するものではありません。


読みやすさっていうのは贈り物です。

どっちの贈り物が喜ばれるかを、貰う人ではなく贈る人同士で争うのは、
滑稽極まりないですからね。


自分の思う読みやすさを考えて、それを贈ってあげればいいと思います。

貰った側も、それがどんな手法でも、素直に喜べばいいと思います。


ということで、長くなってしまいましたが、日本語変数を使う方も、使わない方も、
みんな仲良く、今後ともよろしくお願いいたします(´∀`)