- ベストアンサー
VBAでExcelの別シートの計算表を自動化する方法
- VBAを使用して、Excelの別シートで計算表を自動化する方法について教えてください。
- シートAの入力セルにシートBの入力値を代入し、結果のセルに出力する方法をVBAで実現したいです。
- 計算表の計算時間は1秒未満であり、計算表をそのまま利用したいと考えています。アドバイスなどもいただければ幸いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>今回の質問は、VBAで記述する際に、シートAの入力セルa1に、シートBの入力値を1つずつ代入していき、結果のセルb1をシートBの入力値の隣に出力していこうと考えています。 との事ですが、「シートBのどのセルに入力されている値を代入したいのか」という肝心な事に関しての説明が抜けています。 その「代入したい値」が入力されている多数のセルの中で、最初のセルはどのセルなのでしょうか? 又、最初のセルのデータの処理が終わった後で、また次のデータの処理をしなければならないと思われますが、その次のデータが入力されているセルは、最初のセルの下にあるのか、それとも右にあるのか、どちらなのでしょうか? 又、例えば最初のセルに対する次のセルの相対的な位置は、1マスずれた所にあると決まっているのでしょうか? もしかしますと、1行おきとか、1列おきといった飛び飛びの位置にあるセルを参照しなければならないなどという事は無いのでしょうか? そういった肝心の情報に関して質問者様から説明して頂かなければ、VBAを作るために必要不可欠な情報が不足しているのですから、質問者様が希望されているVBAなど誰も作る事など出来ませんよ。 仮の話として、質問者様が実際に使われているシートBとは異なるレイアウトの表を用いる場合のVBAでしたら作る事が出来るかも知れませんが、そのVBAを参考にして、実際のシートBのレイアウトに合わせたVBAを質問者様御自身は作る事が出来るのでしょうか? もしも出来ないか難しいと思われるのであれば、必要な情報は全て開示して頂くよりほかは御座いません。 そして、VBAを作る上で必要となる情報は他にもあります。 例えば、ワークシート関数を使って処理を行う際に、数値計算を行う関数に、文字列データを処理させようとしますとエラーとなります。 そして、 >シートAの入力セルa1に、シートBの入力値を1つずつ代入していき、結果のセルb1をシートBの入力値の隣に出力 という作業をVBAによって行う際に、シートBに入力されている値に何か間違いがあって、ワークシート関数で処理できない値となっていた場合には、そこでシートAのB1セルに表示される結果がエラーとなり、それが原因でVBAの動作もエラーとなり、VBAが途中で停止する恐れも若しかしますとあるかも知れません。 万が一そうなりますと、質問者様はそのエラーに対処できるのでしょうか? その様な事態を避けるためには、「シートAのA1セルに入力しても良い値とはどんな値なのか」という事や、「シートAのA1セルに入力してはいけない値とはどんな値なのか」という事、及び、「もしシートBに、シートAのA1セルに入力してはいけない値があった場合には、単にそのセルは無視して次の処理を行えば良いのか、といった、どんな対応をVBAにさせれば良いのか」という事に関しても御説明願います。
その他の回答 (1)
- ookamisangakuu
- ベストアンサー率28% (2/7)
直接シートBで計算関数を書くのは一番簡単の方法だと思いますが、シートAの計算表をシートBに反映することはできないでしょうか? エクセル表を見せて頂けないでしょうか
お礼
ご回答ありがとうございます。 計算表で行っている計算は、 一行の計算(数式)ではなく、いくつかのセル(計算)を経由して値を求めています。 入力から出力までが1つのエクセル関数であれば、良いのですが。上記のとおりです。