| . . |
◇トップページ > 管理人の日記 > 2026年1月6日の記事
管理人の日記
もし明日、本当に日本株が下がるなら、米株を売って買い増す絶好のチャンスとします

![]() |
|---|
やり込みプレイと同じで、結局、分からないことは自分で試してみるのが大事なのだ |
昨年末から、弊社では、“明朝フォントで作ったはずの記号”が、何故かゴシックになるという問題に悩まされていた。その答えは、プログラムのソースコードにあったのだ。
…まず、弊社では、「勤務記号」というものを用いている。我が職場には夜勤が存在し、色々な人が様々なシフトで勤務する都合、管理職の人々は、「各人の勤務を文字1文字で記した、横長の表」を作ることになる。勤務パターンが少なければ、「○
○ 休 ○ ▽ △ 休」みたいな感じでも良いだろう。だが、勤務体系がいろいろ増えてくると、そのような記号だけでは、もはや何がなんだか分からなくなってくる。そういう時のために、全角1文字・または半角2文字を使った記号を作ることで、職員のスケジュールを管理する決まりとなった。確かに、こういうとき、漢字というのは分かりやすい。「早」「遅」「夜」とかならば、もう説明しなくても分かりそうだ。また、外字というシステムで、「33/4」みたいなオリジナル記号を1文字枠として生成することも可能だ。実際のアプリケーションとしては、そこに更に、勤務時間などのデーターも乗っており、職員のスケジュールを管理しやすくする。そういうシステムをF通が作ったのだが、そのシステムにおいて、一部の文字だけゴシックになってしまうという正体不明のバグが発生したのだ。
――具体的に言うと。私に質問してきた職員さんとしては、全ての文字を明朝で統一してほしいようだ。しかし、先月に作った「G」という記号は、ゴシックとして表示されてしまう。一方で、本日追加した「開」という誇れ。オマエは強い。な勤務記号は、システム上で明朝体で表示される。意味不明である。私は、上司に相談したすえに、既に「G」の時点でF通コールセンターに質問していたのだが、それが1ヶ月ほど前であり、今日まで解決していなかった。ご丁寧に、年末には、「まだ調査中なので待ってください」という連絡まで来た。その、明朝体がゴシック体になる謎を調べるため、私はソースコードの奥地へと向かった。…と言っても、高尚な問題意識が有ったわけではなく、今日の仕事の終わり頃に、少し時間が余ったので、暇つぶし感覚で、である。私の暇つぶしに負けるF通さあ…。
さて。該当システムは、「Excelから画像を生成する仕組み」を採用しており、WEBサイトのようなボタンをクリックすることで、PNG画像が出力される。そのExcelファイルの時点で、明朝で出力したはずの文字が、ゴシックの画像として出てくることは分かっていた。つまり、問題はExcelファイルに存在するのだ。さて、Excelで、こんな実行ファイルみたいなことを行える理由を調べてみたところ、どうも、「マクロ」というシステムを使っているんだそうだ。そして、そのマクロの中では、VBAというプログラミング言語でソースコードを書いているらしい。全く知らないけど、まあ、なんとかなるだろ…。
…というわけで、マクロのうち、画像作成に関連する部分を重点的に調べてみると、「Font.NameFarEast=
"HGS明朝B"」という記述を発見した。これ以外に、フォントを指定しているところは一切無かったので、ここがおかしいことは確定だ。まずは気になるのは、「NameFarEast」という、分かるようで分からない英文だ。この名前で思い出すのと言えば、ファーイーストリサーチ社、匿名リサーチ200Xである。昭和か?(平成です)
――そんなことはともかく、「NameFarEast」という言葉でネット検索を掛けてみると、どうもこれは、VBAにおいて、「東アジア言語のフォント」を指定するための構文らしい。なるほど〜、何故そんな意味不明な区分を用意するのか…。「Font.NameFarEast」の対義語は、「Font.Name」であり、それでヨーロッパ言語のフォント指定をすれば良いということだそうだ。そして、手っ取り早い解決法として、両方とも同じフォントを指定するというやり方が載っていた。あれだ、つみたて投資枠でも成長投資枠でも「eMAXIS
Slim 全世界株式」を買う、みたいな感じである。
かくして。NameとNameFarEastの両方を指定すると、無事、「G」も「開」も、明朝で表示されてくれた。問題の核心は、「G」という文字は、東アジア言語ではないという判定であり、「何もフォントが指定されていない」=「じゃあデフォルトのゴシックでいいや」と判断されてしまっていたのだ。結局、何故このような意味不明な指定をしているのかは不明のままだったが、かくして、「一部の文字だけがゴシックとして出力されてしまう」は、完全解決に至ったのである。
![]() |
|---|
やっぱ現場のオタクが頑張らんと |
というわけで。本日の私は、「F通が1ヶ月かけて解決できなかった問題」を、「30分ほどでサッと解決した」ということになる。しかも、一応のプログラミング経験はあるとはいえ、初見の言語を、いきなり、だ。
…ただまあ、今回、初めてF通の書いたソースコードを眺めてみたが、さすが大企業ということで、かなりしっかり作ってあった。Tabを使って丁寧に階層構造が付けられており、読みやすいプログラムになっている。あれこれ付け加えて意味不明となり、「
} 」を消していって、バグったら「ん!?
間違ったかな…」とかほざいている私のコードとは大違いだ。また、REM文の中には、名前のような文字が何度も書かれており、「この部分は誰が作ったか」ということが明確にされている。1人で作るプログラムではなく、大人数で協力するならではの作戦だ。そして向こうは、このプログラムをゼロから書き上げた猛者である。本気を出せば、私が見つけたようなバグなど、一瞬で修正できてしまうだろう。
――だが、実際には、1ヶ月かけても進捗なく、そして、無名プログラマーの私ごときに負けてしまった。その理由は、大企業ゆえに、責任意識が希薄になってしまったからだろう。まず、現場で出た問題が報告されるまでに、伝言ゲームのような形となって、実際のF通所属プログラマーたちに伝わるまでに、何度も仲介が入る。この伝言ゲームというのは、企業活動において禁忌であり、間の人間が増えれば増えるほど、掛け算的に業務効率が弱体化する。中抜きと同じである。そして、プログラマーはプログラマーで、あれもこれもと作っているうちに、何が何だか分からなくなる。かくして、「伝言ゲームで回ってきたトラブル報告が」「てんてこ舞いのプログラマーに渡り」、問題が放置されるのである。しかも、放置しても誰も怒ってこないので、もう完全に味を占めているのだ。一言で言うと、直そうと思わなかったから、直せなかったのである。ただまあ、私は、できる人間がやらないのは、罪深いと思う。
さて、日本には、「三人寄れば
――やれ、皆さま、たぶん大企業のSEというと、猛烈に賢くて、問題を何でもすぐに解決してくれるというイメージがあるかもしれない。だが実際には、ぜんぜん小回りが効かず、細かい部分は現場で調整していくしかない。やはり、組織というのは、大きくなりすぎると駄目なのだ。多分、あなたの企業のその問題、実際に解決しているのは、現場のパソコンオタクだよ。
(2026年1月6日)

2026年1月6日の記事を表示しています。