重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【解消】通知が届かない不具合について

昨日、同様の質問をしましたが解決しませんでしたので、
もう一度実例を挙げ質問させていただきます。
WEBクエリにて、とあるホームページからエクセル(2003)にデータを取り込んでいるのですが、数字の取り込みについて教えてください。

ホームページ内の数字(4桁)を取り込みたいのですが、
例えば
1234という数字を取り込むとエクセルには1234と表示されますが、
0123という数字を取り込むとエクセルには123しか
0023という数字を取り込むとエクセルには23しか表示されません。
これを、
0123という数字を取り込むとエクセルに0123と
0023という数字を取り込むとエクセルに0023と
0003という数字を取り込むとエクセルに0003と表示したいのですが、
どうしたらよろしいでしょうか。

実際に取り込んでいるデータ(ホームページ)は、みずほ銀行の以下のページです。
http://www.takarakuji.mizuhobank.co.jp/numbers/n …
この中の、抽選すうじを取り込んでます。
2008年12月8日の抽選すうじを取り込むと、エクセルには5889と表示されますが、
2008年12月9日の抽選すうじを取り込むと、エクセルには756と表示されるため、これを0756と表示したいです。

よろしくお願いします。

A 回答 (2件)

#1です。



表示するところまではクエリ任せなので、自由にならないのですが、書式設定を文字列にしておいても、3桁で表示されてしまうようなので、クエリ内で数字と認識できるものは、一度数字に変換してしまっているみたいですね。

>千の桁・百の桁・十の桁・一の桁に分解したいため~~
その処理はどのように行っているのでしょうか?
関数か、マクロ(VBA)だと思いますが、クエリをいじくろうとするよりも、その処理で対応したほうが遥かに簡単だと思われます。

例えば、対象が数字だったとして、仮にB3セルにあるとします。
◆関数の場合
(1)数字のまま扱って各桁を取り出す(結果は数字)
  千の桁: =MOD(INT($B$3/1000),10)
  百の桁: =MOD(INT($B$3/100),10)

(2)文字列に変換してから各桁を取り出す(結果は文字)
  千の桁: =MID(TEXT($B$3,"0000"),1,1)
  百の桁: =MID(TEXT($B$3,"0000"),2,1)

◆VBAの場合(関数の場合とほぼ同様)
(1) 省略
(2) Format(Range("B3"), "0000")が関数のTEXT(B3,"0000")と同等

といった、要領でいかがでしょうか?
対象を文字としても、もちろん同じようなことが可能です。(とりあえず省略)
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
やはり、無理ですね。
一度置き換えたほうが手っ取り早いですね。
現在は、
◆VBAの場合(関数の場合とほぼ同様)
(1) 省略
(2) Format(Range("B3"), "0000")が関数のTEXT(B3,"0000")と同等
の方法にて行っていますが
以前からクエリから直接、文字列として取り込めないかという疑問がありましたので
質問いたしました。
いろいろ、お手数かけありがとうございました。

お礼日時:2008/12/10 23:25

抽せん数字が必ず4桁と考えてよいなら・・・



抽選数字が入るセルの書式を 0000 (ユーザ定義で入力)に設定しておきます。
こうしておけば、データを取り込んだ時に、数字を前ゼロ(4桁)で表示してくれるはずです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
ご指摘の件試してみましたが
4桁で表示はされるのですが、数値で扱われています。
私のご説明が悪かったのですが、
抽選すうじを取り込んだ後、
千の桁・百の桁・十の桁・一の桁に分解したいため
4桁の文字列として取り込みたいと思っています。

お礼日時:2008/12/10 21:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!