• ベストアンサー

初心者にEXCELのVBAを教えるとしたら何を教えますか?

benelliの回答

  • ベストアンサー
  • benelli
  • ベストアンサー率51% (78/152)
回答No.1

 「まったく何も知らない人」が相手ならとりあえずマクロの記録の方法&ごくごく初歩の修正方法を教えますね。  後は言語の説明なんて後回しで、こんときはこうする、って感じのいくつかの修正方法の参考例をいくつか教えるぐらいでしょうか。  EXCELの勉強ではなくプログラムの勉強としてVBAを学ぶ場合はこの限りではありませんが。。。  初心者が間違えそうなところ……は変数の概念とかですかねw  間違えるも何も、オブジェクトブラウザとか見ても何も分からない人は間違える以前の問題なのがほとんどですからね。 (無論、プログラマーを目指す場合はそれでは困りますが、そうではない人は無理してプログラム言語やマクロを詳細に覚える必要はないかと思います)

tarinko_06
質問者

お礼

回答ありがとうございます。 マクロの記録って便利ですよね。 とりあえずあれができれば全くプログラミングわからなくても 多少の事ならできちゃいますし。

関連するQ&A

  • VBA初心者です。

    VBA初心者です。 Excel 2010のVBAで、 ワークシートのSheet1のオブジェクトモジュールに 他のシートから別のシートにコピー&ペーストをしたいと思い、 以下のプログラムの記述をすると、 アプリケーション定義またはオブジェクトの定義エラーとなってしまいます。 Worksheets("Sheet2").Range(Cells(1, 7), Cells(d, 8)).Copy Destination:=Worksheets("Sheet3").Cells(3, 1) (「d」は変数です。セルの範囲指定は、実際に記述するときは 範囲が広範になるので、行数列数で把握できるようにCellsを使っています) エラーになる理由と解決法をご教授いただければと思います。

  • VBAのCopyコマンドについて

    エクセルVBAでシート3のRangeの値をからシート2のRangeへデータをコピーしようとしているのですが Sheets(3).Range("B3:B100").Copy _ Sheets(2).Range(Cells(3, col2 - 1), Cells(100, col2 - 1)) がうまくいって、 Sheets(3).Range(Cells(2, col1), Cells(100, col1)).Copy _ sheets(2).Range(Cells(2, col2), Cells(100, col2)) が何故、オブジェクト定義エラーになってしまうのがわかりません。 col1、col2は列の変数です。 よろしくお願いします。

  • Excel VBA

    いつもお世話になっております。 ExcelのVBAの処理にてお聞きしたいのですが… Ret = MsgBox("項目を全て削除しますが、よろしいですか?", vbYesNo, "削除") If Ret = vbYes Then Worksheets("入力").Select Range("C10:I59").ClearContents Range("L10:R59").ClearContents Range("W10:Y59").ClearContents Range("AB10:AH59").ClearContents Range("AM10:AO59").ClearContents Range("AR10:AX59").ClearContents Range("BC10:BE59").ClearContents   ・   ・   ・ と長々しく書いているのですが、これをもっとスマートに 書く方法はありますか?? それから、こういったことが出来るなら教えて頂きたい のですが、、、 あるExcelのシート(1枚)を、所定のディレクトリに入って いるExcelファイル(数十ファイル)のシートの先頭に全て挿入して いくといったものなのですが、VBAで出来ますか?? 出来なくとも、近い感じの処理または、参考文献などあったら 教えて下さい。 宜しくお願い致します。

  • エクセルVBAについて

    こんにちわ! 今、エクセルでAシートの入力した項目をBのシートへデーターが入力できるようなシステムを以下のようにくみました。 そこでBシートにデーターが入力されるのですが20行まで入力すると入力できないようにしたいのですが、なかなか上手くいきません。 A1からF20まで書式のロックを外しそれ以外のセルは保護をかけたのですがその状態でVBAを使って20行以上入力できませんという感じのエラー表示をしたいのですが、どうすればいいでしょうか? VBAは初心者ですが宜しくお願いします。 Private Sub CommandButton1_Click() Dim row As Integer row = WorksheetFunction.CountA(Sheets("date").Columns(1)) + 1 Sheets("date").Cells(row, 1).Value = Range("B2").Value row = WorksheetFunction.CountA(Sheets("date").Columns(2)) + 1 Sheets("date").Cells(row, 2).Value = Range("B3").Value row = WorksheetFunction.CountA(Sheets("date").Columns(3)) + 1 Sheets("date").Cells(row, 3).Value = Range("B4").Value row = WorksheetFunction.CountA(Sheets("date").Columns(4)) + 1 Sheets("date").Cells(row, 4).Value = Range("B5").Value row = WorksheetFunction.CountA(Sheets("date").Columns(5)) + 1 Sheets("date").Cells(row, 5).Value = Range("B6").Value row = WorksheetFunction.CountA(Sheets("date").Columns(6)) + 1 Sheets("date").Cells(row, 6).Value = Range("B7").Value Sheets("統制入力").Select Range("B17").Select ActiveWindow.SmallScroll Down:=-9 Range("B3:B7").Select Selection.ClearContents Range("B1").Select End Sub

  • エクセルVBAで選択していないシートのセルコピー

    エクセルVBAで質問させてください。 現在選択していないシートから、セルの書式ごとコピーして貼り付けたいのです。 たとえば Sheets(1).Range(Cells(1, 1), Cells(4, 1)).Copy Sheets(2).Range("A1") 等とすると、Sheets(2)が選択されている状態だとエラーになってしまいます。 おそらく、Copyメソッドというのは、選択されているシートにのみ有効だからなのではないか、と思いますが、セルの値だけでなくフォントその他の書式を、別のシート(現在アクティブでない)から持ってくる方法はありますか?

  • Excel VBA 指定シートの取込

    こんにちは。 ExcelのVBAを使用して、異なるBookのシートを取込みたいのですが、 シートが無かった場合の処理方法がわかりません。 現在のコードは下記の様になっております。 With Workbooks.Open"BOOK1.xls" .Worksheets("Sh1").Cells.Copy ThisWorkbook.Sheets("Sheet1").Range("A1") .Worksheets("Sh2").Cells.Copy ThisWorkbook.Sheets("Sheet2").Range("A1") .Worksheets("Sh3").Cells.Copy ThisWorkbook.Sheets("Sheet3").Range("A1") .Close End With Book1に指定したシートが無い場合、何もしないようにしたいのですが、 どの様に書き換えれば宜しいでしょうか? よろしくお願いします。

  • 実行時エラー”1004” 初心者です

    Excel_2000のVBAです。 sheet1のコマンドボタンを押すと"明細”というシートのデータが入っている範囲を選択するようにしたいのですが、ActiveSheet.Range(Cells(4, 3), Cell(OwariGyo, 8)).Selectのところで実行時エラー"1004"が出ます。 ヘルプを見ても、よく理解できませんでした。 解決方法をご教示ください。 Worksheets("明細").Select ActiveSheet.Range("C4").Select Selection.End(xlDown).Activate OwariGyo = ActiveCell.Row ActiveSheet.Range(Cells(4, 3), Cell(OwariGyo, 8)).Select End Sub

  • エクセルでVBAを使ってブック内にある特定の言葉をすべて置き換えしたい

    VBAの超初心者なのですが、 品番変更に伴い複数枚のシートから成るエクセルファイルの特定の文字を置換えたいのですが・・・。 Range(Cells(1, 1), Cells(65536, 256)).Replace What:="旧品番", Replacement:="新品番" で1枚のシートだけなら置換えできたのですが、すべてのシート(ファイル内すべて)の置換え方がわかりません。 どうしたらよいのでしょう。教えてください。

  • エクセル(VBA)で名簿から該当する人を取り出す?

    シート名→ コース別VBA に 表示する窓口を設定しました。 そして、クラス出席番号順 というシート名から そのコース別VBAに表示するという作業です。 表示するのは、番号・名前・住所などです。 一応、下のように打ってみたのですが、 「オブジェクトは、メソッドまたはプロパティをサポートしていません。」 よろしくお願い致します。 Sub コース別表示() Set 窓 = Worksheets("コース別VBA") 引き取り = 窓.Cells(3, 2) Set クラス = Worksheets("クラス出席番号順") 縦 = 6 For 行 = 3 To 351 If クラス.Cells(行, 9) = 引き取り Then 窓.cell(縦, 2) = クラス.Cells(行, 3) 窓.cell(縦, 3) = クラス.Cells(行, 4) 窓.cell(縦, 4) = クラス.Cells(行, 5) 窓.cell(縦, 5) = クラス.Cells(行, 6) 窓.cell(縦, 6) = クラス.Cells(行, 7) 窓.cell(縦, 7) = クラス.Cells(行, 8) 縦 = 縦 + 1 End If Next End Sub

  • エクセル VBA 選択範囲書込?

    エクセルのVBAで Activesheet Range("A1:B2").Selectは Activesheet Cells(???????).Selectでは どのように書き込めば宜しいのでしょうか?