見出し画像

『国名・州名ランダム生成ツール』を作ってみた

国名、州名をランダムに表示するツールを作ってみました。
生成ボタンを押せば、国名と、その国の州名(または県名、区画名など)がランダムに表示されます。

生成ツールの画面


生成ボタン(Generate)を押すと、、、


ランダムに生成されました(サリマってどこ?笑)

ただそれだけのツールです。笑

国名のランダム生成ツールはweb上で見つけましたが、州名まで表示されるものは無かったので作ってみました。
『Country and State Random Generator(CSRG)』と仮名を付けておきます。

…で、それは何に使うの?と思われる方も多いと思うので(実際言われました。笑)、ツールの目的を書きます。

ツールの目的

このツールを使う目的は、ランダムに表示された国、州などについて調べるためです。

それだけです。笑

その地域はどのような場所なのか、どんな名所や名産があって、どうやって行くのか等々を調べる予定です。

ただ、州だけでは広すぎるかもしれないので、そのような場合は右下に表示されるランダムの数字を使うことにします。(使わなくても良い)

例えば、「ランダム表示された州の中から◯◯番目に人口が多い地域」のような感じです。補助的に使う数字です。

ツールを作った背景

私は幼少期から地図が好きでした。

小学生の社会科の時間には、地図帳の見開きの世界地図で、友達と場所探しゲームをしていました。(皆さんもしてなかったですか?)

例えば、
A君:ロンドン!
B君:(探す)…あった!じゃあ次は北京!
A君:(探す)…
のように、お互いにクイズ形式で場所探しをするゲームです。

ちなみに当時の私がお気に入りだったのは、
・スリジャヤワルダナプラコッテ(スリランカの首都)
・サンクトペテルブルク(ロシア第2の都市)
・ドニエプロペトロフスク(ウクライナの都市のロシア語名、ウクライナ語はドニプロ)
・セントビンセント及びグレナディーン諸島(カリブ海の島国)
・セントクリストファーネイビス(同じくカリブ海の島国)

などです。
『どこ、そこ?』ってなるような、長い地名が好きだったみたいです。

大人になり、場所探しゲームはやらなくなりましたが、今でも地図好きです。
暇な時や気になる地名があれば地図を見ています。(そしてそのまま地図サーフィンが始まります)

今は地図帳ではなく、Googleマップです。
Googleマップは、世界中の地図を写真付きで見れるので大好きです。
しかし最近、Googleマップの場合は自分の意図した場所しか見ていないことに気付きました。

地図帳とGoogleマップの違いを例えるなら、新聞の紙面版と電子版のようだと思っています。
地図帳が新聞の紙面版、Googleマップが電子版です。

地図帳はページ全体を眺める感じ、Googleマップは見る対象が決まっていて検索して眺めることが多いです(必ずしもそうとは限らないかもですが)。
なので、Googleマップの場合、ある程度自分が知っている場所からしか地図を見ていないなと気付きました。

まだ知らない世界はたくさんある、その世界を見るためにどうしたら良いか?と考えていて思いついたのが、『国名、州名ランダム生成ツール』です。

自分が意図していなかった国、地域が表示され、そこから深掘りをして新しい世界を広げていきたいと思ってツールを作りました。

ツールの仕組み

アプリで格好良く…としたいところでしたが、エクセルで作りました。
(アプリの作り方を勉強すると、すごく時間がかかりそうなので)

仕組みは簡単です。
関数とマクロで作っています。
ご興味無い方はすっ飛ばしてください。笑

〈国名の表示〉

①乱数の関数(RANDBETWEEN)でランダムに数字を生成させる。
②国リストを作成しておき、それぞれの国に番号を付けておく。
③VLOOKUP関数で①の数字と同じ番号の国名を②の国リストから表示させる

〈州名/県名/地区名の表示〉

④国別にシートを作成し、各シートに州名リストを作成し、それぞれに番号を付ける(これが一番大変)
⑤INDIRECT関数で③の国名から④のシートを参照させ、
⑤-1 COUNTA関数でリストの州の数を数える
⑤-2 RANDBETWEEN関数で、⑤-1の数の範囲内で乱数を生成させる
⑤-3 VLOOKUP関数で、⑤-2の乱数から州名を表示させる

文章では何のことかよく分からないかもしれないですが、簡単に言うと乱数を生成させて、VLOOKUP関数で参照しているだけです。

仕組み自体は1時間程度でできましたが、④のリストを作るのに正月休みの隙間時間をほぼ費やしました。笑

INDIRECT関数で別シート参照する時に、スペースや記号があったらダメだと分かったのも収穫でした。
スペースはアンダースコア(_ )で対応できました。
コートジボワール(Côte d'Ivoire)の『'』も無理でしたが、こちらは別名の『Ivory Coast』で対応しました。
コートジボワールの別名を知ることができたのも収穫でした。

マクロは生成ボタン、クリアボタンに割り当てています。
生成ボタンではマクロで再計算(乱数の再生成)させているだけです。

ツール作成中に気付いたこと

当たり前ですが、世界には知らないことがたくさんあるなぁと思いました。

日本の外務省が認めている国の数は、2023年3月20日時点で196か国です(外務省HPより)。
今回はそれに加えて海外領土や、国際的に国として承認されていない(または承認している国が少ない)地域も含め、234の国・地域リストを作りました。

196か国は知っていましたが、234となると知らない地域も多かったです。

当たり前ですが、州などの区分も国によっていろいろあります。区分の大きさも階層も様々です。

大きな区分で馴染みのある日本語としては
・都道府県(日本)
・州(アメリカ、カナダなど)
・省(中国)

くらいかなと思いますが、今回調べてみると

・Prefecture
・State
・Province
・District
・Region
・Division
・County
・Parish
・Governorate
・Atoll

などなど色々な言い方がありました。
下3つの区分は初めて知りました。

StateもProvince も日本語にすると州ですが、違いはよく分かりません。
ただ、そういう区分なんだなと理解する方が良いと思いました。

Countyは英語圏でよく使われているようです。
イギリスのように比較的大きい区分に使われることもあれば、州の下層区分で用いられることもあるようで、一概には言えなさそうです。
イギリスの区分は歴史が複雑でよく理解できていません。

Parish

『小教区』という意味らしいです。
ということはキリスト教関係なのかと思ったら、そういうことらしいです。

例えば、トリニダード・トバゴの首都『セントジョンズ』は人みたいな名前だなと思っていたら、『Saint John Parish(セント・ジョン教区)』の中にある都市らしいです。
なるほど、と思いました。

国の規模によるみたいですが、Parishはカリブ海の島国等では比較的大きな区分に、イギリスのような大きな国では小さな区分で使われているようです。

Governorate

アラブで用いられる区画とのことです。
中東に多かったです。

Atoll

珊瑚という意味です。
最初は、区画なのに何故珊瑚?と思っていました。
モルディブ、マーシャル諸島など、珊瑚が多い島国で使用されています。

アポストロフィから始まる地名

例えば、イエメンの「 'Amran」などです。
なぜアポストロフィから始まるのかは分からないです。
中東にはいくつかあるみたいです。

UAEの国旗

UAE(アラブ首長国連邦)は、7つの首長国から成り立っています。
7つの首長国、7人の君主がいるということになります。

有名なのはドバイとアブダビでしょうか。
どちらも大きな航空会社がありますね。

しかし、UAEの国旗は両国のどちらのものでもなく、フジャイラ首長国の国旗のようです。
国旗のことは初めて知りました。

まとめ

国名・州名をランダムに生成するツールを作ってみました。
作っている途中でも初めて知ることが多くあり、楽しかったです。
今年は、このツールを使ってまだまだ知らない国、地域を深堀していこうと思います!

謝辞
国、地域および各国の州についてリスト化、Webで公開してくださった各国の方々、ツールを作るにあたり大変助かりました。この場で御礼を申し上げます。


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