スぺース入りの値だらけだ |
Windowsは、初心者にはやさしくファイル名にスぺースが付けられます 。
よく、”hoge hoge.xlsx"みたいな名前で保存してしまうけど、大丈夫。
これってWindows95の頃から、半角スペースも使えたという古いお話。
確かに、”Prgram Files”なるフォルダーもあったりして、納得してしまう。
だけど、この手のファイル名は、VBAでプログラムを組むと難敵なんだな。
特に、外部プログラムでファイル名を指定して、起動させるのがそうです。
Sub Sample()
With CreateObject("Wscript.Shell")
.Run "C:\Users\Ojiji\Desktop\Hoge Hoge.pptx"
End With
End Sub
これを実行させても、スペースのあるファイル名は実行されてこないのよ。
こんな時は、代わりに”_”で置換して、ファイル名を書き換えてみます。
上の例だと、”Hoge Hoge.pptx”を”Hoge_Hoge.pptx”になるな。
もちろん、VBAのコードも直すけど、あーら、不思議とちゃんと動きました。
それで、日本人は”アンダーバー”と称していますが、正式の名称は違う。
”Undescore”、つまり”アンダースコア”なので、こちらを使うとしましょう。
それで、”Underbar Underscore Which is correct?”でググった。
意味は、どっちが正しいのって問い合わせで一発で回答を手繰り寄せる。
そうしたら、アンダーバーは下線であり、上に何か文字記号があるのです。
その一方で、アンダースコアは一つの文字を意味する、言わば”底線”ね。
日本語では、特殊な学術用語として使われますが、中国語にはあった。
許容譲歩できる最低値といった意味ですが、他国を顧みない奴らの事。
自分の価値判断基準が、世界で唯一のドグマだと思っているから危険。
地上から投げた手榴弾で、高空の戦闘機を撃墜する「抗日ドラマ」あり。
ありえへん世界の抗日ドラマ |
素手で日本兵の体を切断したり内臓をえぐりだすなど、グロな番組作り。
こんな荒唐無稽な演出を、差配する共産党中央宣伝部が許可する。
だから、抗日ドラマが底線なのでしょうが、中国はまともな国家ではない。
北斗の拳のケンシロウに言わせれば、”お前はもう死んでいる”だろうな。
だいぶ脱線なので元に戻しますが、スペースの入ったデータは厄介なの。
特に、エクセルVBAで、外部データベース接続を試行錯誤していました。
アクセスやSQLのデータベースをエクセルで操作しますがサンプルが必要。
ググって海外サイトからダウンロードしましたが、このCSVファイルが曲者。
なんと、ヘッダーになる一行目の項目が、一部がスペース付きの設定だ。
それ以外は、DBのルール通りに、項目がコロンで区切られていました。
それで、ADO(ActiveXDataObjext)接続でシートに表示させる。
すると、ヘッダー部で、このスペース付き項目を表示しようとするとエラー。
エディターのVisualStudioCodeで発見して、モグラたたきの置換です。
他にもありまして、サンプルデータには、国名が入っており、スペース付き。
これもエディターの置換操作で一気に変換してしまって、楽しいもんだよ。
しかも、150万行のデータ(183M)も置換できたりして、こりゃ凄いわ。
時々、エラーでフリーズしても再開すると、前のデータが残されています。
なので、一気にアンダースコアに変換してADO接続に邁進しましたとさ。
というわけで、ADO接続を組み込むデータベース開発には注意が必要。
他にも、アクセスのサンプルファイルをダウンロードしてみたら、テーブルの名前にスペースが入っていて接続できなかったりして、安易に投入値の中にスペースを入れるのは、データベースの操作上、問題が出るのでアンダースコアで代用させねばなるまいと思った自分がいるのでした。
0 件のコメント:
コメントを投稿