VBEの開き方。Excelの「開発」タブ

プログラムの開発環境で使うExcelの「開発」タブとVBA開発環境(VBE)のツール。

VBEってVBのエディター/Editorのこと。ワークシートのタブ上で「右クリックメニュー/コードの表示」を使う。次図の場合は、Sheet1オブジェクト(ワークシート)のコードを開いている。

Excelに「開発」タブが無い時、手っ取り早くVBEを表示させる方法です。

「開発」のタブがあればVisual Basicのボタンを押すと選択しているワークシートのコードを開くことができる。

Excelの開発タブとVBE

「開発」のタブを常に見えるようにするには、Excel本体のメニュー/ファイル/オプションで「開発」をチェックする。

Excel本体のメニューやタブに「開発」を追加する

この設定は、WordなどのOffice製品でも同様にできる。

これ真っ先に書くページでしたね。

カテゴリー: VBE | コメントする

ExcelオブジェクトとExcelアプリ、ファイルの関係

Excelアプリをマウスで操作しますが、操作している対象はVBAから扱えるオブジェクトです。左の赤い枠がExcelのオブジェクトモデルです。右のVBAには、そのオブジェクトモデルの一部が見える。左の赤枠の階層構造は何となく覚えておけば、VBAのコードを書く時にリストから選ぶことができる。

Excelのオブジェクトは、画面と関連して名前を覚える。画面では見えないトップのApplicationから順に階層の構造になっている

ExcelオブジェクトとExcelアプリ、ファイルの関係

マクロ記録では得られない情報です。オブジェクトとコレクションの操作を説明します。

Workbooksオブジェクトは、Excelファイルのこと。単語の最後にsが付く複数形は、コレクションと言う。複数のオブジェクトの集合でExcelが開いているxlsファイル/ワークブックをWorkbooksで管理できる。コレクションは、Countプロパティは持っている。また、コレクションの特定のオブジェクトを使う場合は、()を付けて1から始まる数値か名前を使う。

同様に、Worksheetsもワークブック内の全ワークシートを操作できる。以下はイミディエイトウィンドウで入力する。?から始まる行を入力。その下が出力結果。「’」から始まる文字列はコメントなので不要。

?application.Workbooks.Count       '入力行、ワークブックの個数を調べる。
 1
?application.Workbooks(1).Sheets.Count 'ワークシートの個数
 3 
?application.Workbooks(1).Worksheets(1).name      'Worksheetsの1は、Index番号
Sheet1               '1つ目のワークブックの1つ目のワークシートの名前
?application.Workbooks(1).Worksheets("sheet1").index    'Index番号の確認
 1 
?application.Workbooks(1).Worksheets("sheet1").name
Sheet1

ワークブックは、「メニュー/ファイル/開くで(??.xls?)」ファイルを読み込むとワークシートが現れる。ワークブック(ファイル)の中にワークシートが前図の例では3つ(Sheet1,Sheet2,Sheet3)ある。

通常は、Excelを起動するとすぐに使えるオブジェクトも準備している。つまり、ワークブックを開いているのでSheet1やSheet2が使える。しかし、次図のようにワークブックが無い状態だと、ワークシートもないのでプロジェクトエクスプローラには何のオブジェクト( Sheet1 など)も無い。起動しているのはApplcationオブジェクトだけ。

Applicationオブジェクトだけの状態。 ???.xlsファイルを呼び込んで無い状態。ワークシートが無い。

この状態では、「メニュー/ツール/参照設定」もできないのでオブジェクトが無いのでF2オブジェクトブラウザも起動しない。

上図の状態は、VBAだと確認しやすい。というのは、マウス操作でExcelを起動すると何かファイルを選ぶため。

以下をイミディエイトウィンドウに入力すると上図のワークシート無しのExcel(Applicationオブジェクト)だけを見ることができる。

set x=new Excel.Application  ‘Bookを持たないExcelを起動する
x.visible=true  ‘Excelを見えるようにする
Applicationオブジェクトだけの状態 その2

次図は、マウス操作でワークブック(Excelファイル)を2つ読み込んでいる。手前と背面にワークブックがある 。

オブジェクトモデルと画面の関係 2つのワークブックがある

まず2つのExcelが動いているように見える。これをイミディエイトウィンドウで確認する。

?excel.Application.Workbooks.Count
2                                               '2つのファイルを開いている
?excel.Application.Workbooks(1).Name
Book1.xlsx 
?excel.Application.Workbooks(2).Name 
Book2                               '保存してないと拡張子xlsmが無い

ワークシート(Sheet?)タブの他にGraph?が見える(Graph?を作るには、グラフを作って右クリックメニューで「グラフの移動」を選択、「新しいシート」を選択)。Sheetsコレクションは、Chartsも含む。Sheets≠Worksheetsである。Chartsが無ければ結果的にSheets=Worksheetsとなる。クラス名で言えばSheetの方が守備範囲が広い。

オブジェクトの複数形は、コレクションという。

Workbookの複数形Workbooks
Worksheetの複数形Worksheets

オブジェクトを扱う時は、2通りの扱い方がある。

  1. 直接オブジェクト名を扱う
  2. コレクションのIndex番号か名前(Excel本体のワークシートのタブの文字列)を使う

オブジェクトの名前は、次図のSheet1やSheet2などでVBEでないと見えれない。

WorkSheetsコレクションと各オブジェクト名の関係

コレクションは、Index番号や名前を使って個々のオブジェクトとしても使える。

コレクションから特定のオブジェクトを指定する
?excel.Application.Workbooks.Count?
2                                               '2つのファイルを開いている
?excel.Application.Workbooks(1).Name
Book1.xlsx 
?excel.Application.Workbooks(2).Name 
Book2                               '保存してないと拡張子xlsmが無い
?application.Workbooks(2).sheets.Count  
 5 
excel.Application.Workbooks(2).worksheets.Count 
 3 
?application.Workbooks(2).charts.Count  
 2 

先にBook2のどこかのセルをクリックしてから以下を実行する。ブックを選択していると「application.Workbooks(?).」を省略できる。以下は、イミディエイトウィンドウ。

?excel.Sheets.Count  
 5 
?excel.Workbooks.Count
 3 
?excel.Charts.Count   
 2 

あるワークシートを選択していると「application.Workbooks(?).Worksheets(?)」を省略できる。

カテゴリー: Excel仕組み, 8 ExcelとVBEの関係、Wordとのデータ処理 Excelオブジェクト | コメントする

ネットとパソコンがあれば自力でマクロは書ける

ネットとパソコンがあれば自力でプログラムは書ける。カンニングし放題。良い時代です。ただ、基本知識はいるわね。求める応用。基本知識って何でしょう。でも、メンタルで止めない。イミディエイトで体験しましょう。

  1. ブラインドタッチ:キーボードをたまに見るようだと画面の変化に気付かない。
  2. データと型、メモリ、クラス(データとメソッド)
  3. プロシージャと引数、戻り値 (関数値)
  4. 有効範囲 、使える範囲、参照できる範囲、スコープ (可視範囲)
  5. 標準モジュールとクラスモジュールなどExcelオブジェクト(調査)

コツはやってみること。体験する。

調べると体験。仕事につながる簡単な例、めちゃくちゃ簡単すぎて仕事の匂いがしない例で体験する。このサイトや動画では単純な例で。さらに、簡単に確認するにはイミディエイトウィンドウが使えんとね。

カテゴリー: Excel章立て | ネットとパソコンがあれば自力でマクロは書ける はコメントを受け付けていません

履歴書とか資格の写真がなんと30円で4枚

3cmx4cmは、縦が4cm

スマホのアプリは以下の3つ

  1. 履歴書カメラ
  2. PrintSmash(ローソン、ファミマ)
  3. マルチコピー(セブンイレブン)

1のアプリで撮って印刷は2か3。L版の写真で30円。4枚ある。

カテゴリー: とりあえず | コメントする

イミディエイトウィンドウ(デバッグ)活用

以下のことをしてVBAやExcelオブジェクトを理解する。

  1. イミディエイトウィンドウを開いて簡単なコマンドを実行する。
  2. エンターキーが実行で上から順にする必要は無い
  3. VBAの関数の調査
  4. Excelのオブジェクトモデルの調査
  5. セルの中で使う関数の作成

記憶することは無い、イミディエイトウィンドウを使って確認する。
調査はインターネット
確認はイミディエイトウィンドウー>これで学習できるから

CやC++、Javaもかなコンパイル言語です。VBA、古くはVisualBasicは古いけど動的な言語。つまり、コンパイルしなくてもすぐに動く。RubyやPythonもそう。すぐに動く。

コンパイルって翻訳のことだけど誰に対してわかるように訳しているのかというと、PC機械だったり、JavaならJava仮想マシーン、マシーンだから機械なのだが、仮想マシーンがPC機械やスマホやタブレットを動かすことになる。

カテゴリー: Excel章立て | イミディエイトウィンドウ(デバッグ)活用 はコメントを受け付けていません