3日がかりのその仕事、3分で終わらせる方法教えます!
パソコンスキルの心技体

「疑惑の判定」の主審と、「Excel VBAの国際対応」

2010年6月28日
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

昨日のワールドカップ「ドイツ-イングランド」戦。

主審のラリオンダさん。痛い判定ミスが判定がありましたね。。

何度か見かけたなぁ、と思って調べていたら。。

テレビでですが、二回ほど、観たことがありました。

– – –

FIFAコンフェデレーションズカップ2003
日本 – コロンビア戦

第25回TOYOTAカップ
FCポルト(ポルトガル)対オンセ・カルダス(コロンビア)

日本 – コロンビア戦については、当時、レビューを書いています。
http://www.konesite.com/reports/

左メニュー、「日本-コロンビア 03/06/23」のところをクリックすると、以下のページが表示されます。
http://www.konesite.com/standing/030623confede.html

この「日本 – コロンビア戦」での彼の主審ぶりについては、僕は絶賛しています。

彼のいいところは、とにかく、ポジショニングと展開の読みの速さ。

特に、後半5分くらい。突然しかけた山田があげたアーリークロスが高原にダイレクトに渡り、そのままヘディングシュートとなったシーン。
ポストに当たり得点にはなりませんでしたが、このときの、山田がしかけた瞬間のこの主審の動きだし、高原にボールが行った段階での位置取り等は、もう、完璧!でした。

今回のゴール判定の件については、これ以上書きませんが、実力のある審判員だと思います。。


さてさて。

で。

そんな渦中の(?)ドイツからお便りが来たので、ご紹介。

はるばる、ドイツから達人養成塾のマクロ初中級講座を受講に来られている、Tさんからです。

小川さん

ドイツのTです、こんにちは。

今日は特に質問ではなく、最近ちょっとしたトラブルがありましたので、それを報告をしたいと思い、メールを差し上げました。
(すでにご存じであれば無視して頂いて全く問題ありません。)

仕事ではよくユーザーフォームのコンボボックスに下記のようなマクロを書いて4月から3月までを選択できるようにしています。

Private Sub UserForm_Initialize()

    Dim c As Integer
    Dim dt As Date

    dt = #4/1/2010# ‘year is what ever ok
    For c = 0 To 11
    cboMonth.AddItem Format(dt, “mmmm”)
    dt = dt + 31
    Next

End Sub

これを実行するとApril, May, June, ・・・・・Marchと選択できるようになります。

そして次の段階でSelect Caseを用いて以下のように変換することが多いです。
(並び替えをするため)

April —> 4
May —> 5
June —> 6
(以下省略)

さて、自分のPCでは問題はなかったのですが、ドイツ人の同僚が試したところ
上手くいったり、失敗したりでした。

cboMonth.AddItem Format(dt, “mmmm”)
というのも上記の部分でドイツ人のパソコン(excelは当然ドイツ仕様)だと英語表記ではなく、
ドイツ語表記になってしまうからです。ご参考ですが以下がドイツ語表記です。

April, Mai, Juni, Juli, August, September, Oktober, November, Dezember, Januar, Februar, März(Maerz)

4月の場合はドイツ語と英語は同じなのでselect caseで問題なく作動、 5 – 7月はエラー, 8月はOKという感じです。
結局はselect caseでドイツ語表記の月名も追加して、無事に解決です。

他のローマ字を使っている国であれば、その国の言語で表記されるかもしれないですね。

何かの参考になれば幸いです。


で、僕がした回答は、以下のような感じ。

Tさん、

達人養成塾 小川です。

おもしろいですね。

確か Monthaname関数は、インストールしたExcelの Application.International(xlCountrySetting) プロパティに応じた値を返します。

ドイツ語版で以下のマクロを実行すると、文字列「Mai」を返すのではないでしょうか。

ちょっと、試してみてください。

Sub monthametest()
    Debug.Print Application.International(xlCountrySetting)
    Debug.Print MonthName(5)
End Sub


そして、Tさんから、また返信をいただいた

早速下記のものを実行してみたところ、私のパソコン(日本語仕様)では81, 5月と表示され、ドイツ語版だと49, Maiと表示されました。

最初の番号は国際電話番号ですね。
確かに日本は0081で、ドイツは0049です。

やはりマイクロソフト社はこのような[snip]、それに対応するコードをすでに開発していたのですね。

まだまだ新たに発見することが多いですね。

今回のケースでは、

cboMonth.AddItem Format(dt, “mmmm”)

この箇所をMonthname関数に変えるとすっきりしますね。

ご教授、ありがとうございました。

p.s.
来年の2月か3月に一時帰国を予定していますので、その際にまた小川さんのセミナーを受講できればと思っています。


Application.International プロパティなんて、普通調べませんよね (^^;

そして、 xlCountrySetting は、国際電話番号を流用した番号を返すとは。
(戻り値のデータ型は、Double型でした。Application.Versionとかとは違うんですね)

この、Application.International プロパティ。
いろいろな引数を取り得るので、気になるあなたは、ヘルプ等で調べてみてください。

思わぬ発見があるかもしれません。

僕も、今回、

Application.International(xlMinuteCode)

なんていう引数を発見しました。

これ、戻り値は”m”なんですけど。

なんと、月を示す記号も、各国語バージョンで異なるらしいです!

うーん、おもしろい。

こういうおもしろい質問があると、僕も脳が刺激されます v(^^*

キーワード

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

最新の記事

人気記事

最新記事

カテゴリ

最新コメント

タグクラウド