• 締切済み

Excel VBA 超初心者です…苦戦しています。

imogasiの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

本来、エクセル(の質問)では、ブックーシートーセルを意識して質問すべきなのだ。 >AファイルのセルA1には任意の値を入力可能で なんて、関連(前)質問での書き方は、それなりの質問者であることを示すとおもう。 ブック1のSheet1のセルA1に、文字列が入力してあり、それはブック2のシート名を表すという場合の例ならば、下記を参考にしてみては。 ーーー 下記を作ってテストしてみる。 例 ブック・シート・データ ーー ブック1のブック名 シート名指定 シート名 Sheet1 セルA1の値 27年業績 ーーー ブック2のブック名 シート名指定 シート名 27年業績 セルB2の値 12345 --- コード 標準モジュールに Sub test01() Set wb1 = Workbooks.Open("シート名指定") x = wb1.Worksheets("Sheet1").Range("A1") MsgBox x y = Workbooks("シート参照").Worksheets(x).Range("B2") MsgBox y End Sub ーー 実行すると 12345 がメッセージボックスで出る。 ーーー 上記のブック1にあるデータを、ブック1を開かないで、採りたいという内容の質問が時々あり、エクセル4.0マクロという、昔の時代(エクセル95以前)の旧式の関数(一種のプログラム)で採ればできるという回答が出たものだ。Googleで「エクセル4.0マクロ」で検索。 VBAでやる場合はINDIRECT関数などを使って、策を弄す必要はなく、「ブック名」や「シート名」を「変数」に一旦入れて、それを引数=パラメータとして使うことで素直な記述(処理)ができる。これがVBAを使う利点です。 しかし、ブック名・シート名・セル番地の変数化して利用は、エクセルVBAについては、相当経験を積まないと、使うことに不安を感じると思う。 質問者の場合、>初心者なので、らしいから、慣れる必要があると思う。 またエクセル4.0マクロには、凝らないほうがよいと思う。

Machi7142
質問者

補足

質問内容が不足しておりすみません。以前に別の方が質問されている内容で、VBAの処理方法を知りたくリンクを貼らせて頂きました。仕入管理をしたく、例)としては、B2に仕入先名(仕入先は複数あり)をリストより表示し、B5に仕入商品名を入力表示すると、別ブックで作成している仕入商品一覧(仕入先毎に商品一覧シートあり)から自動的に単価が表示されるようにし、登録ボタンをクリックすると、元々作成している別シートの其々の仕入シートに蓄積されるようにしたいです。 VLOOKUP関数を利用し、一つのシートを参照する方法は分かるのですが、それ以外の方法やVLOOKUP関数を使用せずにVBAで良い方法があるか教えて頂けますでしょうか。

関連するQ&A

  • excel VBA ブック間コピーについて

    evcel VBA初心者です。 ブック間コピーの方法を探っていて以下の質問にたどり着きNO.2 NO.3の回答を試してみましたが、値のみしかペーストされません。 書式を含めすべてコピペする方法を教えて下さい。 Range("**")を変えればいいというものなのでしょうか。 また、NO2の回答のコードの中で sFindbook の変数はどこで宣言しているのでしょうか。 http://okwave.jp/qa/q5261470.html

  • Excelのグラフに対するVBAの実行

    Excel2010で、グラフを選択した状態でVBAを実行する方法を、全くVBAを使ったことのない者に分かるように教えてください。やりたいことは下記のNo.1の回答に書かれていることです。 http://okwave.jp/qa/q7089060.html とりあえずこれだけできたらいいのです。 他の言語でのプログラミング経験はあります。

  • VBAやadd-inによる交通費自動計算(エクセル

    ExcelのA列に出発地、B列に目的地、C列に経由地を入力することD列に運賃が自動表示されるようにしたいと考えています。 ※元データがD列がブランクで、6,000行程のデータがあるため、一つ一つ検索をするのは時間がかかるため VBAの場合、以下2つを参照しましたが、正常に動きませんでした。 http://okwave.jp/qa/q5258945.html http://okwave.jp/qa/q1641060.html add-inの場合、「お自動君」というものがあるのですが、現在閉鎖されているようでダウンロードができません。 http://www.popxpop.com/archives/2007/03/post_144.html 「お自動君」のような形式が理想なのですが、 他に良いadd-inか、VBAでの処理方法があれば教えて頂けますでしょうか?

  • VBA ログイン後csvファイルをダウンロードする

    VBAで会員サイトにログインし、その後、csvファイルでダウンロードする処理を考えています。 調べたところURLDownloadToFileを使うとよいとあり、つかってみたのですが ダウンロードできません。 調べたら http://okwave.jp/qa/q5390386.html にあるように https サイトなので使えないとのことでした。 ↑のURLの記事は2009年なのですが、今も、URLDownloadToFileはhttpsサイトでは難しいのでしょうか。 URLDownloadToFileの説明を見てもよくわからなかったので、どなたか教えていただけないでしょうか。 また、httpsサイトにあるcsvをvbaでダウンロードするよい方法等もありましたらご教授お願いいたします。

  • VBA 読み取り専用時はマクロを無効にする方法

    ネットワークに保存したファイルを数人のメンバーで共有して使っています。 その際、誰かが開きっぱなし(閉じ忘れ)にしていて更新できないことがあり その解決策として下記の質問にたどり着きました。 VBA=一定時間エクセルの入力操作がない場合、自動的にそのブックを閉じたい http://okwave.jp/qa/q2911086.html 上記のリンクにあるVBAをコピペで使用してみたのですが、 読み取り専用で開いている際にも閉じてしまうため、 もうひと工夫出来ないものかと思い質問させていただきます。 このマクロを読み取り専用時は無効にすることは出来ますか? またその際、どんな構文を追加すればよいでしょうか? 当方、関数が少しわかる程度でVBAは全くの初心者です。 宜しくお願い致します。

  • excel VBA プログレスバーについて(初心者)

    VBA初心者の質問です… excelで入力されている値を用いて、グラフ作成する簡単なデータを作りました。 特に問題なくグラフは出来たのですが、グラフ作成が1つではなく数個同時(順番)に作成しているため時間が掛かってしまいます。 この処理中にプログレスバーを表示出来ればと思い質問を致します。 私なりに調べ(goo内)下記サンプルを発見し、簡単なのでこれを使をうかと思うのですが、UserForm1の処理前にUserForm2.showだけでは UserForm2の処理が終わらないと処理をしません…当然ですよね… 本当に初心者で申し訳ないのですが、UserForm1の処理最中にUserform2のプログレスバーを表示するのにはどうすればいいのでしょうか… 【サンプル】 Private Sub UserForm_Activate() With Label1 .SpecialEffect = 2 .BackColor = vbBlue www = .Width .Width = 0 End With For i = 1 To 1000 Me.Caption = i Label1.Width = i / 1000 * www Me.Repaint Next End Sub また他におすすめなやり方があれば教えて頂ければ… 初心者な質問で申し訳御座いません。

  • VBAで3秒だけ時間を止めたい

    アクセス2007です。 VBAで3秒だけ時間を止めたいのですが 過去ログを検索してもよくわかりませんでした。 http://okwave.jp/qa/q4984098.html こちらを見るとAPIとの事ですが VBAだけで出来るコードをご教示いただけないでしょうか?アドバイスよろしくお願いします。

  • EXCEL VBA プログラミング

    EXCEL VBAについて教えて下さい。 プログラミング超初心者です。 book1でマクロを実行し、ダイアログボックスを表示させて、任意のファイル(book2)を開き、book1のsheet1をまるごとbook 2の末尾にコピーするという処理をしたいのですが、うまくマクロが組めません。 ダイアログボックス表示→ファイルの選択まではいけたのですが、その先で苦戦しています。。 ご存知の方、マクロの組み方をご教示いただけますでしょうか。 よろしくお願い致します。

  • Excel VBAにて座標読み込み・配置

    http://okwave.jp/qa/q6764374.html ↑で質問させて頂いた者です。 前回は、回答者:keithin様のVBAを全くいじらずで解決したのですが・・・ 今回も上記の質問と全く同じなのですが、座標値・座標原点の条件が変わり どうしたらよいか途方に暮れています。 (100,-600)~(200,-400)までの2.5mピッチのxyz座標データ(スペース区切りtxt)をSheetに読み込み。 A列=x B列=y C列=z そしてD列・100行のセルを座標原点(100,-600)として、セルにz値を展開したいのです。 横軸=x 縦軸=y 以上のことをExcel VBAでやりたいのですが・・・ 可能でしょうか? 宜しくお願いします。

  • EXCEL VBAでデータをどんどん入力したいのですが・・・

    こんにちは。 EXCEL VBA の初心者です。 下記のURLのようなVBAを作りたいのですがうまくいきません。 http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_080.html 3~4項目のフォームを作って登録ボタンでシートにどんどん 記録されていくマクロを作りたいのです。 上記のURLを参考に作っていますがうまくできません。 どなたか助けて下さい。 よろしくお願いいたします。