はじめに
入門とは、外とは異なる世界へ踏み入れることです。知識なき者や志なき者を導くことではありません。そこでの学びは教わることではなく、問いかけることです。ここで語られるのは、答えではありません。80/20の法則とは、「80%のユーザーが20%の機能しか使っていない」というものです。しかし、マイクロソフト・エクセルでは、「95/5法則」の法則が当てはまります。95%のユーザーが5%の機能しか使っていないのです。数式や関数、そしてVBAを魔術師のように操る人を目指すのではなく、エクセルの機能を幅広く理解することで、誰でも維持、修正、拡張しやすい、解決の道筋は全員の目の前に開けてくるはずです。
Excelブックファイルの構造
まずは、エクセルのオブジェクトモデルの説明から始める。
エクセルは、Application、Workbook、Worksheet、Rangeの4つのオブジェクトがある。
Applicatioオブジェクトは、アプリケーション全体を表し、WorkbookオブジェクトはWorksheetオブジェクトのコレクションが含まれる。セルを表す主要な概念はRangeオブジェクトになり、これによりここのセルやセルのグループを使用できるようになる。
Excelブックは、Open XMLファイル形式のSpreadsheetMLスキーマで記述されています。
Open XMLフォーマットは、Microsoftが策定したXMLをベースとしたファイル形式で、2006年にECMA-376として標準化され、Office 2007 以降で採用されました。エクセルの場合、拡張子 xslx で保存されます。XML形式のファイルを圧縮して1つのファイルにしています。
Excelブックの拡張子「xlsx」を「zip」に変更して内容を調べると、以下のような構造が現れます。(実際の配置とは違います)
VBAは、ブック、ワークシート、標準モジュールの各レベルで記述ができますが、全てvbaProject.binの中にCompound File Binary Format(CFBF)で保存されています。エクセルファイルの拡張子は、必ずマクロが保存可能なファイル(.xlsm マクロ有効ブック、.xltm マクロ有効テンプレート、.xlsb バイナリブック)で保存する必要があります。.xlsxで保存した場合、マクロはファイルの中に保存されません。また、他人が作成したマクロの実行には制限が課せられます。
Open XMLの利点
- 構成ファイルはXML形式で記述され、Zip圧縮されているため、コンパクトになります。
- モジュール形式でファイルを分離させているため、一部が破損していても開くことができる可能性があります。
- Open XMLを使用している他のオフィス製品との相互運用ができます。
ワークシートとブックの仕様と制限
エクセルも1つのアプリケーションであり、全てを処理できるわけではありません。設定された制限内で最も望ましい処理を行うことを目指しています。以下のような制限があるということを認識しておくことは大切です。
機能 | 最大数 |
---|---|
ワークシートの行数と列数 | 1,048,576行 16,384列(XFD) |
列の幅 | 255文字 |
行の高さ | 409ポイント |
改ページ | 1,026 |
セルが含むことができる合計文字数 | 32,767文字 |
ヘッダーとフッターの文字数 | 255 |
1つのセル内での最大改行数 | 253 |
有効桁数 | 15桁 |
数式の長さ | 8,192文字 |
選択範囲 | 2,048 |
1つの関数に指定できる引数 | 255 |
関数に設定できるネストレベル | 64 |
ユーザー定義関数の項目 | 255 |
使用可能なワークシート関数 | 341 |
計算で使用できる最も古い日付 | 1900 年 1 月 1 日 (1904 年日付システムの場合は 1904 年 1 月 1 日) |
計算で使用できる最も新しい日付 | 9999 年 12 月 31 日 |
入力可能な最大時間 | 9999:59:59 |
1 つ以上の Excel テーブルが含まれているブックでは、[複数のユーザーによる同時編集を行う] 設定を有効にすることはできません。
エクセルファイルの種類
エクセルファイルは、以下の種類があります。
種類 | 拡張子 |
---|---|
ブック | .xlsx |
マクロを有効にしたブック | .xlsm |
テンプレート | .xltx |
マクロを有効にしたテンプレート | .xltm |
XML形式でないバイナリブック | .xlsb |
マクロを有効にしたアドイン | .xlam |
VBA(Visual Basic for Applications)マクロは、1994年 Office for Windows 1.5 (Excel 5.0)の時代から搭載されています。現在は VBA 7.1 となっていますが、互換性を維持するためにセキュリティ問題の対応がされていません。そのため、VBAマクロを含むブックは拡張子を変えて明示しなければならず、開く場合も制限が付与されます。
今後、VBAマクロに対しての根本的なセキュリティ強化は予定されていないと思われます。万一そのようなバージョンアップが行われた場合は従来のマクロの改修が必要になると思われます。VBAは限定的な利用に留め、新たなVBAマクロを業務で使用するのはおすすめできない理由です。
コンテンツ
- 雑・Excel入門試論 - 脱VLOOKUPの思考 01 - ブック - 仕様と制限
- 雑・Excel入門試論 - 脱VLOOKUPの思考 02 - ブック - オプション
- 雑・Excel入門試論 - 脱VLOOKUPの思考 03 - ワークシート
- 雑・Excel入門試論 - 脱VLOOKUPの思考 04 - セル - 文字列型
- 雑・Excel入門試論 - 脱VLOOKUPの思考 05 - セル - 数値データ
- 雑・Excel入門試論 - 脱VLOOKUPの思考 06 - セル - 日時データ
- 雑・Excel入門試論 - 脱VLOOKUPの思考 07 - リンクされたデータ型
- 雑・Excel入門試論 - 脱VLOOKUPの思考 08 - セル - 計算式・関数
- 雑・Excel入門試論 - 脱VLOOKUPの思考 09 - セル - 数値の書式設定
- 雑・Excel入門試論 - 脱VLOOKUPの思考 10 - セル - 日付と時刻の書式設定
- 雑・Excel入門試論 - 脱VLOOKUPの思考 11 - セル - 条件付き書式
- 雑・Excel入門試論 - 脱VLOOKUPの思考 12 - テーブル - テーブルの作成と入力規則
- 雑・Excel入門試論 - 脱VLOOKUPの思考 13 - テーブル - ソートとスライサー
- 雑・Excel入門試論 - 脱VLOOKUPの思考 14 - テーブル - 動的配列関数
- 雑・Excel入門試論 - 脱VLOOKUPの思考 15 - Power Query - エクセルのデータを読み込む
- 雑・Excel入門試論 - 脱VLOOKUPの思考 16 - Power Query - 変換
- 雑・Excel入門試論 - 脱VLOOKUPの思考 17 - Power Query - テーブルの結合
- 雑・Excel入門試論 - 脱VLOOKUPの思考 18 パワーピボット - データモデル
- 雑・Excel入門試論 - 脱VLOOKUPの思考 19 パワーピボット - 操作
- 雑・Excel入門試論 - 脱VLOOKUPの思考 20 パワーピボット - 日付テーブル
- 雑・Excel入門試論 - 脱VLOOKUPの思考 21 DAX - コンテキストとイテレーター
- 雑・Excel入門試論 - 脱VLOOKUPの思考 22 DAX - CALCULATE
- 雑・Excel入門試論 - 脱VLOOKUPの思考 23 DAX - タイムインテリジェンス
- 雑・Excel入門試論 - 脱VLOOKUPの思考 24 - ダッシュボード - ピボットグラフ(Pivot Chart)
- 雑・Excel入門試論 - 脱VLOOKUPの思考 25 - ダッシュボードの作成