- ベストアンサー
Excel VBAにて座標読み込み・配置
当方、Excel VBAに関しては全くのド素人でございます。 お客さんに頼まれて、次のことをやりたいのですが、どうしたらよいか途方に暮れています。 (-50,-50)~(50,50)までの2mピッチの合計2601個のxyz座標データ(txt)をSheetに読み込み。 A列=x B列=y C列=z そしてAD列・26行のセルを座標(0,0)として、セルにz値を展開したいのです。 横軸=x 縦軸=y BC列・1行が(50,50) E列・51行が(-50,-50) 以上のことをExcel VBAでやりたいのですが・・・ 可能でしょうか? 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>xyz座標データ(txt)をSheetに読み込み。 テキストファイルの具体的な記載内容を確認してから「シートに読み込む」の部分を作成してください。 ・カンマ区切りのCSVファイル? ・カンマ区切りだけど拡張子がtxtになっているファイル? ・タブ切りテキストファイル? ・その他のフォーマット? ・そもそもそのテキストファイルは,ホントに先頭からいきなりXYZ座標の羅列で始まっているのか? ご自分で,新しいマクロの記録で実際にサンプルのテキストをシートに取り込んでみる作業をマクロに録って,利用してみるのでも十分できます。 やってみてもどうしても失敗するときは,実際のサンプルをコピーしてご質問に掲示し,新たなご質問を投稿してご相談なさってみてください。 この部分が完成するまでは,データをエクセルシート上に手動で開いて,しのいでください。 次のマクロはABC列の1行目から,XYZのデータが2601個きちんと入ったあとの作業をします。 Sub macro1() dim i on error resume next for i = 1 to 2601 if cells(i, "C") <> "" Then range("AD26").offset(-cells(i, "B") / 2, cells(i, "A") / 2) = cells(i, "C") end if next i end sub ALT+F11を押し,挿入メニューから標準モジュールを挿入し,コピーして貼り付けて登録しておきます。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
私が、力が無いのか、よく判らない質問だ。VBAやエクセルとしては珍しい質問のようだ。 (テキストデータの読み込み) >(-50,-50)~(50,50)までの2mピッチの合計2601個のxyz座標データ(txt)をSheetに読み込み。 A列=x B列=y C列=z ーー テキストデータを読み込み、空白かカンマ、TABなどDelimiterでSplit(関数を使い)して、各セルに納めていけば仕舞い。 データの中身が>(-50,-50)~(50,50)までの2mピッチの合計2601個のxyz座標データ、というだけで、プログラムには関係ないことはご存知だろう。 >お客さんに頼まれて、であれば、その方面のプロではないのですか。であれば、ここまでは聞くまでも無い。 WEBででも「VBA テキストファイル エクセル 読み込み」でコード例が出てくるだろう。 質問の書きぶりからして、質問者は、プログラム作成経験はあるのでしょうか。ここが肝心で、あるならよく知っている人も 回答しようという気持ちになるかも。 ーー (その後のしたいこと) >セルにz値を展開したいのです この「展開」の意味が判らない。見た目でシート画面を使ってXYZ座標で、「透視図」「斜視図」のようなものを描きたいということか? ーー エクセルには「等高線」というグラフの種類がある。座標を指定できる立体に関連して、それぐらいしかエクセルとしてのメリットは無いのでは。 エクセルVBAはVB6相当ということなので、熟達者ならVB6で出来ることならほとんどできるとは言うものの、 VBA初心者ではおぼつかないのでは。 このカテゴリの回答者は、文系で、テキストの扱いに慣れた人が多いのではと、私見で推測する。 理系のカテに質問したらどうだろう。 VBAやVBや他の言語が問題ではなく、座標処理・画像処理の特有の経験が必要ではないかな。 わかる人も質問コーナーの文字数制限で解説はむつかしいのでは。 ーー http://q.hatena.ne.jp/1127355417 などの記事もあります。
お礼
keithin様、ご回答有難うございます。 座標txtはスペース区切りとなっております。 -50.00 -50.00 0.00 -50.00 -48.00 0.00 -50.00 -46.00 0.00 ・ ・ ・ -50.00 -8.00 0.00 -50.00 -6.00 0.00 -50.00 -4.00 0.00 -50.00 -2.00 0.00 -50.00 0.00 0.00 ・ ・ ・ keithin様のおっしゃる通り、新しいマクロの記録でxyzのtxtをSheetに取り込んでみる作業を マクロに記録して作業を進めてまいります。 また、つまずいたら質問させて頂きます。 有難うございます。