- ベストアンサー
マクロを作る時の関数IFについて
- クエリで落としたデータを一度テキストで保存してから必要な項目を残したりして最終的に顧客リストをマクロで作れるようにしたい。
- マクロを記録中の作業で、ある数字によって回収方法を区分けする項目があります。
- しかし数式を入れても、セルの数字が文字列でないからか、実行されません。テキスト保存したものからマクロを記録する場合、保存先が見つからない場合があります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
そういうことであれば、どこで不具合が生じているのか、原因となりそうなものをひとつずつ調べていくと良いでしょう。 私なら、次の順序で調べていくかと思います。 まず、マクロを実行したときに、手作業で入力した関数と同じ関数がセルへ入力されることを確かめます。同じ関数が入力されない(狙いどおりの関数が入力されない)ことが判明したら、次の調査へ進む前に、同じ関数が入力されるようにマクロコードを書き換えます。 同じ関数が入力されることが分かったら、手作業で関数を作成したときの実験データと、マクロ実行により入力されるデータとで、データ型が一致するかどうか(数値か文字列か)を調べます。(ここが不一致なのではないかと推定しています。) 不一致であれば、データ型をマクロ処理で変更するか、または関数をデータ型に合わせたものに変更します。 これでもなお「集」などが表示されなければ、次に・・・と調査を続けるところですが、このほかに考えられる原因がちょっと思いつかないので、申し訳ないのですがここまでにさせてください。 なお、データ型を調べる方法は、ご存知のことと思いますが、いろいろとあります。例えば、関数を使ってA1セルのデータ型を調べたいときは、「=TYPE(A1)」を例えばB1セルに入力します。B1セルに「1」と表示されたらA1セルの値は数値、「2」と表示されたら文字列となります。 また、「保存先がみつかりません」については、保存先の指定についてのマクロコードに誤りがあるのかもしれません。この点については、頂戴した情報からは、これ以上分かりません。お役に立てず申し訳ないところです。
その他の回答 (1)
- ok2007
- ベストアンサー率57% (1219/2120)
状況がよく分からないので、補足なさったほうがいいかもしれません。 まず、お使いなのはエクセルVBA(エクセルのマクロ)ということでよろしいでしょうか。 また、マクロは、「マクロの記録」で作成したものをお使いになっている、ということでしょうか。 そうだとすれば、「マクロの記録」をおこなっているときに、あるセルに手作業で関数を作成・入力したかと思うのですが、そのときは『集』などの文字が正しく表示されていたのでしょうか。(つまり、手作業で入力した関数自体には問題が生じないのでしょうか。) このような点を補足なさるほうがいいのでは、と思います。
補足
説明不足ですみません。 エクセルマクロを使っています。この関数の数式はマクロの記録中に 作成するもので、実行したときに数式が一番上の行のセルに入力される ようになります。マクロを実行後にそのセルの数式を残りの下のセルにコピーすることになります。 ですので指摘どおり、マクロの記録を行っているときに、手作業で関数の数式を入力しました。手作業で入力した関数自体は問題ないと思います。実際に元の数字を入れ直したときに実行できました。 落としたデータの元になる1や2の数字自体が何か問題だと思いますが、文字列とか標準とか、考えれらないでしょうか?
お礼
回答ありがとうございます。 早速、アドバイスいただいたとおりに実行してみます。