VBA 別シートの計算表

Excelについて。 シートAに、計算表があります。 セルa1に入力した値によって、いくつかのExcel関数を利用して...

kagakusuki さんからの 回答

質問者が選んだベストアンサー

  • 2015/04/24 20:30
  • 回答No.2
  • ベストアンサー
kagakusuki

ベストアンサー率 51% (2545/4948)

>今回の質問は、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にさせれば良いのか」という事に関しても御説明願います。
この回答にこう思った!同じようなことあった!感想や体験を書こう!
この回答にはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A
  • EXCEL VBAで複数シート内のセルをまとめて表を作成 Visual Basic

    EXCELマクロ(VBA)を教えてください。 なやんでいることは、 目的:シート1からシート5までの表の値をシート6に一覧表を作成させる。 ・シート1からシート5まで シート内の表からセル値をコピーしてマクロで(ボタンか何かで)シート6にシート1からシート5のセル値を貼り付けていくような動作をさせられるようなプログラムをつくりたいです。    表(一覧)を作成させたいので わかる方プログラミングを教えてください。よろしくお願いします。...

  • EXCEL VBA 文中の書式ごと複写するには Visual Basic

    EXCEL VBAのプログラミングについて教えてください。 セルA1とセルB1が結合されており、セルには「あいうえお」と入力されています。 入力された「あいうえお」の内、「いうえ」は赤文字+太字を設定したと仮定します。 その結合されたセルの文章と文字色+太字を、結合されていないA3というセルに複写する場合、 下記の様なコードを考えてみましたが、長文になると処理が遅いので知恵を貸してください。 Range("A3").Value = Range("A1").Text For i = 1 To Len(Range("A1").Text)   Range("A3").Characters(i, 1).Font.Color = Range("A1").Characters(i, 1).Font.Color   Range("A3").Characters(i, 1).Font.Bold = Range("A1").Characters(i, 1).Font.Bold Next i よろしくお願いします。...

  • 【excel vba】エクセルファイル内にある数式の内「関数名(IF,... Visual Basic

    vba初心者です。(ネットからコードを拾ってきてちょっと改造できる程度) excel 2003を使用しています。 【前提】 ・「数式」「数値」「文字列」等がセルに入力されたエクセルファイルを使用する  ⇒「関数名」のみを表示する。(文字列や数値が入力されたセルは無視) ・「数式」セルには「関数」が使われているものと、そうでないものがある ・1セル内に複数の関数が使用されている場合あり(新出の関数名であればすべて抽出したい) ・検索対象シート:ブック内のすべてのシート 【質問】 findメソッドで「IF」や「SUM」というように直接関数名を指定して検索するのではなく、「関数」というククリで検索はできるのでしょうか? その検索結果を同ファイル内に新しいシート(Sheet1)を作成し、「関数名」を一覧表示するという流れ(以下にまとめました)にしたいです。 【手順】 (1)Book1内で「関数」検索をする (2)「関数」が見つかった場合は「Sheet1」シートを作成(関数が見つからない場合は,msgbox "該当なし") (3)検索した「関数名」をSheet1のA1セルに入力する (4)Book1内すべて(複数シート有り)の関数名を抽出するまで連続検索をする  ⇒A1→A2→A3→…の様に、A列の上から順に入力していく ※関数名の重複がないように一覧化できれば最高です。 ※シート毎に、抽出した関数名を分けなくて大丈夫です。(あくまでファイル全体で使用されている関数名の一覧) (5)msgbox "終了" 解決方法をご存知の方、ご教示願えませんでしょうか。 宜しくお願いいたします。...

  • excel vba セルへの一括挿入 オフィス系ソフト

    Excel+VBで簡単なシステムを作成しております。 VBでテキストファイルを読み込み、ある桁数で分割して2次元配列に格納しています。(行:レコード 列:カラム) 現在は、要素ごとにセルを指定して挿入しているのですが、レスポンス向上のため、行単位でセルに挿入できると聞きました。 具体的には以下です。 配列 (0,0)="A" (0,1)="AA" (0,2)="AAA" (1,0)="B" (1,1)="BB" (1,2)="BBB" (0,0)をセルA1に、(0,1)をセルC1に、(0,0)をセルE1に1文で挿入。 もちろん、セルA1:E1に対して配列値を代入する形になると思うのすが、記述の仕方がわかりません。 お分かりになる方が見えましたら、ご教授願います。...

  • excel vbaのプログラムが作成できません 情報工学

    プログラミングでexcel vbaを勉強しています。 excel vbaのプログラムでフィボナッチ数列のプログラムを作れという問題なんですけど、正直全くわかりません。誰かこのプログラミングを教えてください。お願いします。 フィボナッチ数列は次のように帰納的に定義される。 fib(1) = fib(2) = 1 fib(n) = fib(n - 1) + fib(n - 2) (ただしn >= 3) この関数fib(n)を定義せよ。ただし引数nはInteger型、fib関数の返す値はLong型とする。 またfib関数を呼び出す適当なメインプロシージャを定義し、A1セルからA20セルまでに fib数列の1~20番目の値を書き出すようにせよ。 という問題です。ほんとに困ってますお願いします...

ページ先頭へ