Excel マクロ・VBAの勉強サイトです。 なにかと仕事で利用するExcelですが、マクロを使えば業務効率の向上に繋がります。 定型的な処理を自動で行うことができる様になります。 複数のExcelファイルから情報を取り出したり、 CSVファイルを読み込んで帳票を作成するなどですね。 マクロを利用するには、VBAというプログラム言語を学ぶ必要があります。 プログラム言語と聞くと難しいイメージですが、それほど難しくはないです。 このサイトでは、何かと役立ちそうなサンプルを載せます。
Excelでマクロを実行する際に知っておいた方が良いこと 長時間処理を実行する場合や、大量のデータをセルに反映するといった場合には、Excel.Applicationクラスの各種プロパティをオフにして処理を実行すると、良い事があります。 中でも重要だと思われるプロパティを以下に列挙しました。 1. 警告表示の有効・無効(シート削除時などの警告ダイアログなど) DisplayAlerts 2. マクロ実行中のEscキーの有効・無効 EnableCancelKey 3. イベントの有効・無効 EnableEvents 4. マウスカーソルの形状 Cursor 5. 画面更新の停止有無 ScreenUpdating 6. Excelワークシートの計算方式 Calculation 上記のプロパティたちは、例えば以下のように、関数の開始と終了時にフラグのオンとオフの切り替えを行います。 リスト1 P
**メモ: ** Type が 8 の場合、Set ステートメントを使用して結果を Range オブジェクトに割り当てる必要があります。次に例を示します。 Set myRange = Application.InputBox(prompt := "Sample", type := 8) 次の例では、ユーザーにコピーの数を入力するよう要求するメッセージを表示し、アクティブ ワークシートをその数だけ印刷します。メソッドが数値を要求するよう型で指定することに注目してください。 Sub PrintActiveSheet() Dim TotalCopies As Long, NumCopies As Long Dim sPrompt As String, sTitle As String sPrompt = "How many copies do you want?" sTitle = "Pri
2007/12/423:3 【Excel】VBAで入力規則を設定する 別のセルの入力値によって、入力規則を変更したい場合がある。 そういった場合には、VBAで動的に入力規則を切り替えれば良い。 入力規則を変更したい場合の例 ・フォルダ選択した場合に、フォルダ内のファイル名を入力規則とする。 ・Excelファイルを選択した場合に、ファイル内のシート名を入力規則とする。 以下、サンプル。 【やりたいこと】 A1セルの入力規則に"あああ,いいい,ううう"を設定する。 【サンプル】 Sub Main() Sheets(1).Range("A1").Select With Selection.Validation .Delete .Add Type:=xlValidateList, _ AlertStyle:=xlValidAlertStop, _ Operator:= xlEqual, Formu
VBAでJScriptのArrayオブジェクトのメソッドを使ってみるサンプルです。 サンプルではSliceメソッドを使用してみています。 Sub JSArraySample() Set objJS = CreateObject("ScriptControl") With objJS .Language = "JScript" .AddCode "function JSSplit(s,d){return s.split(d);}" .AddCode "function JSArrayLength(a){return a.length;}" End With 文字列 = "a,b,c,d,e" Set b = objJS.CodeObject.JSSplit(文字列, ",") Cells(1, 1).Value = b.slice(0, 1) Cells(1, 2).Va
またもや「Excel VBAと関係ねぇじゃねーか!」と言われそうですが、今回はMS-DOSコマンドの標準出力を変数に取得する方法を解説します。これはもう、Excelとは関係ないVB系のネタなんですね。ただ実行環境がExcelってだけで(^^; ま、いーや書いちゃえ。MS-DOSって何のことだかわからない人は、自分で調べてください(^^; なお、ここではWindows XP Home Editionを例に解説します。 MS-DOSのコマンドには今でも便利に使えるものが多いですし、何よりネットワークを管理されている方は必須コマンドです。VBやVBAからMS-DOSコマンドを実行するときには、問題が2つあります。1つめはShell関数で起動できないことです。MS-DOSコマンドはいわゆるDOS窓で起動する仕組みになっていますので、Shell関数では起動できません。2つめの問題は、実行結果もDOS
All Microsoft Microsoft 365 Office Windows Surface Xbox Deals Support Software Windows Apps OneDrive Outlook Skype OneNote Microsoft Teams Microsoft Edge PCs & Devices Computers Shop Xbox Accessories VR & mixed reality Phones Entertainment Xbox Game Pass Ultimate PC Game Pass Xbox games PC games Windows digital games Movies & TV Business Microsoft Cloud Microsoft Azure Microsoft Dynamics 365 Micro
Office Space へようこそ。Office Space は、Microsoft® Office アプリケーションのスクリプト作成に関するヒントとテクニックを紹介するコラムです。毎週火曜日と木曜日に新しいヒントを掲載します。過去のヒントについては、Office Space アーカイブを参照してください。Microsoft Office でのスクリプト作成について質問がある場合は、scripter@microsoft.com (英語のみ) までお送りください。すべての質問に回答することはできないかもしれませんが、可能な限り対応いたします。 ADO を使用して Excel ワークシートにクエリを実行する 約 1 か月前、CBS は、人気ホーム コメディ "Everybody Loves Raymond" の最終回を放送しました。この番組は、Scripting Guys のうち少なくとも
はじめに 改めて言うまでもないことですが、文字列処理で正規表現が使えると非常に便利です。VBAで正規表現を利用する方法を紹介したいと思います。 対象読者 VBAで正規表現を使用したい方 VBAで煩雑な文字列処理の行う必要のある方 なお、「正規表現についてよくわからない」という方は、以下のページの解説などを参考にしてください。 サルにもわかる正規表現入門 必要な環境 Windows VistaまたはWindows XP VBA開発環境 正規表現を使う前に VBAで文字列比較を行う場合、標準の機能としてStrComp関数やLike演算子があります。 特にLike演算子は、ワイルドカードなどによるパターンマッチングが行えます。正規表現よりも柔軟性は劣りますが、実現したい機能がLike演算子で済むのならば、無理に正規表現は使わずLike演算子を使った方がよいと思います。詳しくは、ヘルプにあるLik
ふむふむ,作成したマクロやアドインをクリック一つで実行したいのですね。それならツールバー(コマンドや機能を実行するためのボタンやメニューを並べたウィンドウ)を作るのがいいでしょう。“アドインを作ったらツールバー”,これはVBAプログラマの常識ですからよく覚えておいてください。 ツールバーを作ろう 前回,Excelでマクロ専用のブックを作る方法として,個人用マクロブックやブック型アドインを紹介しました。これらを使えば,いろいろなブックでオリジナルのマクロを共通的に呼び出すことができます。しかし,マクロを実行するには,[ツール]メニューからマクロ・ウィンドウを呼び出し,マクロを選択して[実行]ボタンをクリックする,といった具合に結構手間がかかります。頻繁に利用するマクロは,ボタン一つで実行できれば便利さがアップしますよね。そうした場合にオススメなのが,ツールバーです。 Excelでは,[表示]
↑こんな感じです。新しいツールバーを作るところまでは一緒です。コンボ ボックスを配置するコードは、 Sub AddComboBox() ''ツールバー[検索ツールバー]にコンボ ボックスを作る With CommandBars("検索ツールバー").Controls.Add(Type:=msoControlComboBox) .Caption = "ComboBox" .OnAction = "SheetSearch" End With End Sub となります。引数 Type に指定する定数が違うところに留意してください。 配置したコンボ ボックスは、UserForm 上で利用できるコンボ ボックスと同じように扱えます。データを追加するときは、 Sub AddDate() Dim i As Long For i = 1 To 10 CommandBars("検索ツールバー").Cont
↑こんな感じのツールバーです。もちろんテキスト ボックスには自由に文字列を入力・編集できます。 ちなみに、同じようなやり方で、ツールバーにコンボ ボックスを配置することもできます。 興味のある方は「ツールバーでコンボ ボックスを使う」をご覧ください。 また「メニューバーに独自のメニューを追加する」と同じ方法で、ツールバーにメニューを追加することも可能です。 まず新しいツールバーを作ります。VBA を使って自動的に作ることもできますが、これは手作業で作った方が簡単です。ここでは[検索ツールバー]という名前のツールバーを例にして解説します。 【手作業で新しいツールバーを作る】 1. [ツール] - [ユーザー設定]を実行する。 2. [ユーザー設定] ダイアログ ボックスの [ツールバー] タブで [新規作成] ボタンをクリックする。 3. [ツールバー名] ボックスに「検索ツールバー」と入力
マクロでツールバーを作る方法がわかりません…という質問を受けました。なるほど、メニュー関係の操作は慣れないと訳がわからないものです。ここでは、マクロで新しいツールバーを作るテクニックを解説しましょう。 ツールバー(とメニュー全般)はCommandBarオブジェクトです。CommandBarオブジェクトの集合がCommandBarsコレクションですから、新しいツールバーを作成するということは、CommandBarsコレクションに新しいCommandBarオブジェクトを追加するということになります。これにはAddメソッドを使います。次のコードは、新しいツールバーを作成します。 Sub Sample1() CommandBars.Add End Sub 実行してみましたか?実行しても何も起きませんよね。でも実は新しいツールバーが作成されているんです。[ツール]-[ユーザー設定]を実行して[ユーザ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く