マクロVBAでExcelシートを自在に操作できるようになろう!

  Рет қаралды 40,851

マクロちゃんねる

マクロちゃんねる

Күн бұрын

エクセルのワークシートの挿入やコピー、削除、名前の変更といった操作をマクロVBAで自由自在にできるようになりましょう。
0:00 はじめに
0:15 シートの選択方法
2:04 Addメソッドで挿入
4:31 末尾にシートを追加
6:56 複数シートを挿入
8:01 Nameプロパティ利用時のエラー対応
11:33 インテリセンス(候補)が出ない問題
13:14 Deleteでシートを削除
13:32 警告メッセージを表示させない
14:31 シートの表示と非表示
15:16 SelectとActivateの違い
16:12 シートのコピーと移動
VBAプログラミング基礎講座の再生リスト
• VBAプログラミング基礎講座

Пікірлер: 13
@hiomf.5168
@hiomf.5168 Жыл бұрын
いつも、わかりやすくて、有意義な動画をありがとうございます。インテリセンスの出し方についての余談も貴重でした。これからも、豆知識も期待してます!
@user-qt2vd1bg6e
@user-qt2vd1bg6e Жыл бұрын
いつもわかりやすく勉強させてただいています。 VBAは本当に初心者なのですが仕事にも役立てればなと参考にさせていただいています。 で、ここで質問をしてもいいのかどうかなのですがもしよろしければ教えてください。 Excelで一つのシート上の「D6:P2000」のデータベースの中を「検索」し検索値のセルがアクティブセルに なった時に「検索終了」のボタンを押したときに検索結果がどの列にあっても 検索結果の「行」は変えずに「列」が「D列」になるようなマクロってできますか?
@user-li6yg8vh1r
@user-li6yg8vh1r 2 жыл бұрын
いつも勉強させていただいております。月間集計表を作っているのですが、1月から12月まで一気にシートを追加するのではなく、毎月、1シートずつ ”〇〇月” と名前を付けて追加していく事は可能でしょうか? 無知ですみません💦 VBA学習になった途端に難しく苦戦しています💦
@macro-chan
@macro-chan 2 жыл бұрын
もちろん可能です。 具体的にどういったシステムなのかわかりませんが、とりあえず作業を1つずつ分解して考えます。 手作業でやる場合どうやるのか、そしてそれを「マクロの記録」で記録してみてある程度どのようなオブジェクトとプロパティとメソッドが必要なのか把握、それを参考にプロシージャを作るといいと思います。
@user-li6yg8vh1r
@user-li6yg8vh1r 2 жыл бұрын
@@macro-chan 返信ありがとうございます。無知なりに試行錯誤してみます。
@user-yi8ez5zh6z
@user-yi8ez5zh6z Жыл бұрын
初めまして!excel、マクロと初心者で勉強中で、いつも参考にさせて頂いております、先生ですね、 さて、今回のワークシートを非表示にする方法の動画なんですが、手順は理解できました、先生有難うございます、疑問に思う事があります、自分用のマクロ作成ならあまり必要ない方法なのかなと思いました。第三者が利用したときにシートを非表示させて隠すって事が正解かわかりませんが、具体的に非表示を使う状況はどういったときなのでしょうか?
@macro-chan
@macro-chan Жыл бұрын
Excel全般で言うと機密性の高いシートを非表示にするとかですかね。 VBAだけで言うと「作業用シート」として一時的に非表示で挿入するなどがあります。
@qwer8709
@qwer8709 2 жыл бұрын
いつも拝見しています。質問いいですか? ワークシートの名前が月単位で変わるブック(●月一覧表.xlsみたいなかんじです)に向けて、マクロ元(This Workbook)からマクロを実行したいです。 名前が変わるExcelをアクティブシートにしたいときはdir関数でパス取得して、戻り値を変数に入れるというので合ってますか?見当違いしていたらヒントを欲しいです。 こちらの動画シリーズを繰り返し見ているうちに初心者の自分にも拙いですがコードが書けるようになってきて楽しいです。ためになる動画いつもありがとうございます!
@macro-chan
@macro-chan 2 жыл бұрын
ご視聴とご質問ありがとうございます。 ただすみません、ちょっと質問の意味がわからなかったです。 >ワークシートの名前が月単位で変わるブック(●月一覧表.xlsみたいなかんじです) 変わるのはワークシートの名前なのか、ブックの名前なのかどっちなんでしょうか? >名前が変わるExcelをアクティブシートにしたい アクティブシートじゃなくてアクティブブックにしたいという意味ですか? あと、ブックが複数あるのか2個なのか1個なのかなど状況がわからないです。 実現したいことを具体的に書いて頂ければアドバイスできるのかなと思います😊
@qwer8709
@qwer8709 2 жыл бұрын
@@macro-chan ほんとですね!読み返して支離滅裂なことに気が付きました ファンクションブイルックアップ を使った機材配置のマクロを作りたいです マクロ元のシート1にテーブルがあります テーブルには社員ナンバー、名前、使って欲しい機材番号のテーブルがあります もう一つブックを開いきます このブックには1日から31日までシートがあります 1シートずつにその日に出勤する人の社員ナンバーと名前が入っています ファンクションブイルックアップで、全シート、その日の出勤者が使う機材を配置したいです Sub 配置() Dim rc As Long Dim i As Long: i = 1 Dim j As Long: j = 1 Dim sh As Long: sh = 1 Dim ws As Worksheet Dim SearchKey As Range Dim SearchRange As Range Dim OutputRange As Range rc = MsgBox("対象ファイルを開いていますか?", vbYesNo) If rc = vbYes Then MsgBox "配置を開始します" For i = 1 To Worksheets.Count Worksheets(i).Range("l3:l38").ClearContents Next On Error Resume Next 'Application.ScreenUpdating = False For Each ws In Worksheets ws.Activate For j = 1 To SearchKey.Rows.Count Set SearchKey = Workbooks(1).Worksheets(1).Range("A2:C100") Set SearchRange = Workbooks(2).Worksheets(sh).Range("C3:l100") Set OutputRange = Workbooks(2).Worksheets(sh).Range("L3:L100") OutputRange(j, 1) = WorksheetFunction.VLookup(SearchKey(j, 1), SearchRange, 3, False) Next sh = sh + 1 Next ws 'Application.ScreenUpdating = True Else MsgBox "終了します" End If End Sub ここで、ファンクションブイルックアップ が上手くいっていないことに気が付きました。 これはアクティブシートの切り替えが出来てないことが原因だと考えたので、 アクティブシートにするためにはディレクトリ関数を使うのでしょうか?という質問になりました。 初めてマクロの記録以外のコードを書くくらいの経験値なので、そもそも見当違いしていたらお恥ずかしいのですが、このチャンネルを見るようになってから、自分で書けるようになりたいと本気で思っています!よろしくお願いします!
@macro-chan
@macro-chan 2 жыл бұрын
セルの配置関係とかよくわからないので勝手に想定して作りましたが、おおよそこんな感じになるかと思います。 ・VLOOKUPで機材を抽出したいブックをBookX ・マクロ記載ブックにあるテーブル名はテーブル1 ・BookXの表はA1にあり1行目が見出し Sub 配置() 'テーブルの検索範囲をSearchRange変数に代入 Dim SearchRange As Range ThisWorkbook.Activate Set SearchRange = Range("テーブル1[[名前]:[機材番号]]") '使用機材割当表ブックを開きBookX変数に代入 Dim BookX As Workbook, pass As String pass = "ここに使用機材割当表ブックのパスを記入" If Dir(pass) = "" Then MsgBox "ブックが存在しません" Exit Sub Else Set BookX = Workbooks.Open(pass) MsgBox "配置を開始します" End If '割当 Dim i As Long, j As Long BookX.Activate For i = 1 To 31 Sheets(i).Activate j = 2 Do While Cells(j, 1) "" Cells(j, 3) = WorksheetFunction.VLookup(Cells(j, 2), SearchRange, 2, False) j = j + 1 Loop Next i End Sub
@qwer8709
@qwer8709 2 жыл бұрын
@@macro-chan 丁寧に私の質問に付き合ってくださりありがとうございます 模範解答のコードを読んでみて、自分で書いたコードがすごく回り道してることに気付きました… 頭を悩ませていたブックをアクティブにするという部分も、ディレクトリ関数を先頭に持ってくるという発想がなかったので目から鱗でした🥺🥺 基礎講座を繰り返し見て、まずは自力で完成させてみるのが小さな目標です!こちらのマクロちゃんねるも、PC活用ちゃんねるも応援しています!いつも独学を後押ししてもらってます🥰ありがとうございました!
@tatsuyainoue5977
@tatsuyainoue5977 2 жыл бұрын
大変わかりやすい動画、いつもありがとうございます。 今度、officescriptとVBAの違いを教えていただけませんか🙇🏻‍♂️
VBAのエラー処理|On Error Resume Nextなど
13:31
マクロちゃんねる
Рет қаралды 19 М.
VBAこれでもう怖くない!セル範囲指定が自由自在!
12:15
マクロちゃんねる
Рет қаралды 39 М.
DAD LEFT HIS OLD SOCKS ON THE COUCH…😱😂
00:24
JULI_PROETO
Рет қаралды 12 МЛН
路飞被小孩吓到了#海贼王#路飞
00:41
路飞与唐舞桐
Рет қаралды 75 МЛН
Slow motion boy #shorts by Tsuriki Show
00:14
Tsuriki Show
Рет қаралды 2,9 МЛН
VBA to BROWSE & COPY Data from SELECTED File in Excel
10:00
Leila Gharani
Рет қаралды 323 М.
VBAブックのイベントプロシージャ|できることが超広がる!
12:26
DAD LEFT HIS OLD SOCKS ON THE COUCH…😱😂
00:24
JULI_PROETO
Рет қаралды 12 МЛН