Microsoft Excel(または単にExcel)は、MicrosoftがWindows、macOS、Android、iOS、iPadOS向けに開発した表計算ソフトです。計算機能、グラフ作成ツール、ピボットテーブル、そしてVisual Basic for Applications (VBA)と呼ばれるマクロプログラミング言語を備えています。
ExcelはMicrosoft 365およびMicrosoft Officeスイートに含まれるソフトウェアの一部であり、1985年から開発されています。



Microsoft Excel は、すべてのスプレッドシートの基本機能を備えています。[ 11 ]番号付きの行と文字で名前が付けられた列に配置されたセルのグリッドを使用して、算術演算などのデータ操作を整理します。統計、エンジニアリング、財務のニーズに対応するために、さまざまな関数が用意されています。さらに、折れ線グラフ、ヒストグラム、チャートとしてデータを表示でき、非常に限定的な 3 次元グラフィック表示も可能です。さまざまな視点からさまざまな要因に対するデータの依存関係を表示するために、データをセクション分けすることができます (ピボット テーブルとシナリオ マネージャーを使用)。[ 12 ]ピボットテーブルはデータ分析ツールです。ピボット テーブル フィールドを使用して大規模なデータセットを簡素化することでこれを実現します。Visual Basic for Applications というプログラミングの側面があり、ユーザーはたとえば、数理物理学の微分方程式を解くために、さまざまな数値的手法を使用し、[ 13 ] [ 14 ]結果をスプレッドシートに報告することができます。また、さまざまなインタラクティブ機能により、ユーザーインターフェースでスプレッドシートをユーザーから完全に隠すことができ、スプレッドシートは、カスタム設計されたユーザーインターフェースを介して、いわゆるアプリケーション、または意思決定支援システム(DSS) として表示されます。たとえば、株式分析ツール[ 15 ]、または一般的には、ユーザーに質問して回答とレポートを提供する設計ツールとして表示されます。[ 16 ] [ 17 ]より高度な実装では、Excel アプリケーションは、更新スケジュールを使用して外部データベースや測定機器を自動的にポーリングし[ 18 ] 、結果を分析し、WordレポートまたはPowerPointスライド ショーを作成し、これらのプレゼンテーションを定期的に参加者のリストに電子メールで送信できます。
Microsoft では、Excel の起動方法を制御するためのオプションのコマンドラインスイッチがいくつか用意されています。[ 19 ]
Excel 2016 には 484 個の関数があります。[ 20 ]これらのうち 360 個は Excel 2010 より前に存在していました。Microsoft はこれらの関数を 14 のカテゴリに分類しています。現在の 484 個の関数のうち、386 個はオブジェクト "WorksheetFunction" のメソッドとしてVBAから呼び出すことができ[ 21 ]、44 個は VBA 関数と同じ名前です。[ 22 ]
2020年12月3日にLAMBDAが導入されたことで、Excelはチューリング完全になった。[ 23 ] [ 24 ] [ 25 ]
Windows 版 Excel は、Microsoft の Visual Basic for Applications (VBA) によるプログラミングをサポートしています。VBA はVisual Basicの方言です。VBA を使用したプログラミングにより、標準的なスプレッドシート操作では扱いにくい、あるいは不可能なスプレッドシート操作が可能になります。プログラマーは、コードの記述、デバッグ、およびコードモジュール構成環境のためのウィンドウを含む Visual Basic Editor (VBE) を使用して、コードを直接記述できます。ユーザーは、数値計算手法を実装したり、書式設定やデータ構成などのタスクを VBA [ 26 ]で自動化したり、スプレッドシートに報告される任意の中間結果を使用して計算をガイドしたりできます。
VBAはMac Excel 2008から削除されました。開発者たちは、タイムリーなリリースではVBAエンジンをMac OS Xにネイティブに移植することはできないと考えていたためです。VBAは次のバージョンであるMac Excel 2011で復活しましたが[ 27 ] 、このビルドではActiveXオブジェクトがサポートされていないため、一部の高度な開発者ツールに影響が出ています[ 28 ] 。
VBA コードを生成する一般的な簡単な方法は、マクロレコーダーを使用することです。[ 29 ]マクロ レコーダーは、ユーザーの操作を記録し、マクロの形式で VBA コードを生成します。これらの操作は、マクロを実行することで自動的に繰り返すことができます。マクロは、キーボード ショートカット、コマンド ボタン、グラフィックなどのさまざまなトリガー タイプにリンクすることもできます。マクロ内の操作は、これらのトリガー タイプまたは汎用ツールバー オプションから実行できます。マクロの VBA コードは、VBE で編集することもできます。ループ関数や独自のプロパティによる画面プロンプトなどの特定の機能、および一部のグラフィック表示項目は記録できないため、プログラマが VBA モジュールに直接入力する必要があります。上級ユーザーは、ユーザー プロンプトを使用して対話型プログラムを作成したり、シートの読み込みや変更などのイベントに反応したりできます。
マクロ記録されたコードは、すべての Excel バージョンと互換性があるとは限りません。Excel 2010 で使用できるコードの中には、Excel 2003 で使用できないものもあります。セルの色を変更したり、セルのその他の要素を変更したりするマクロを作成すると、下位互換性が失われる可能性があります。
VBA コードは、スプレッドシート オブジェクトを識別する語彙である Excelオブジェクト モデル[ 30 ]と、スプレッドシートへの読み書きやユーザーとのやり取り (カスタム ツールバーやコマンド バー、メッセージ ボックスなど) を可能にする一連の関数またはメソッドを介してスプレッドシートとやり取りします。ユーザーが作成した VBAサブルーチンはこれらのアクションを実行し、マクロ レコーダーを使用して生成されたマクロのように動作しますが、より柔軟で効率的です。
Excel は最初のバージョンから、エンドユーザーによるマクロ (反復作業の自動化) およびユーザー定義関数 (Excel の組み込み関数ライブラリの拡張) のプログラミングをサポートしていました。初期のバージョンの Excel では、これらのプログラムは、ステートメントが数式構文を持つマクロ言語で記述され、特殊なマクロシート (Windows ではファイル拡張子 .XLM で保存) のセルに格納されていました。XLM は Excel 4.0 まで Excel の既定のマクロ言語でした。[ 31 ]バージョン 5.0 以降、Excel は既定で VBA でマクロを記録しましたが、バージョン 5.0 では XLM での記録もオプションとして引き続き許可されていました。バージョン 5.0 以降、このオプションは廃止されました。Excel 2021 を含むすべてのバージョンの Excel は XLM マクロを実行できますが、Microsoft は使用を推奨していません。[ 32 ]
2023年、MicrosoftはExcelがPythonプログラミング言語を直接サポートすると発表しました。[ 33 ] [ 34 ] 2025年現在、ExcelのPythonはエンタープライズおよびビジネスユーザー向けに利用可能であり(一部例外あり)、ファミリー、個人、教育ユーザー向けにはプレビュー版となっています。[ 35 ] [ 33 ]
Excelは、指定したセルグループから生成されるグラフ、図表、ヒストグラムをサポートしています。また、ピボットテーブルに直接リンクできるピボットグラフもサポートしています。これにより、ピボットテーブルに合わせてグラフを更新できます。生成されたグラフィック要素は、現在のシートに埋め込むことも、別のオブジェクトとして追加することも可能です。
これらの表示は、セルの内容が変更されると動的に更新されます。例えば、重要な設計要件が視覚的に表示されているとします。ユーザーがパラメータの試行値を変更すると、設計を表す曲線の形状が変化し、交点も移動することで、最適な設計の選択を支援します。
アドインを使用すると、さらに多くの機能を利用できます。Excelには、以下のようなアドインがいくつか付属しています。
Excel 7.0 までのバージョンでは、データセットのサイズが 16K (2 14 =16 384 ) 行。バージョン 8.0 から 11.0 では 64K (2 16 =65 536行と 256 列 (ラベル 'IV' として 2 8 )。現在のバージョン 16.x を含むバージョン 12.0 以降は、1M (2 20 =1,048,576行、16,384列(2 14列は「XFD」列とラベル付けされている)。[ 36 ]
2007年版までは、Microsoft ExcelはExcelバイナリファイル形式(.XLS)と呼ばれる独自のバイナリファイル形式を主要な形式として使用していました。[ 37 ] Excel 2007では、 Office Open XMLを主要なファイル形式として使用しています。これは、Excel 2002で初めて導入された「XMLスプレッドシート」(「XMLSS」)と呼ばれる以前のXMLベースの形式に続くXMLベースの形式です。 [ 38 ]
Excel 2007 は、新しい XML ベースの形式を代替として使用することを支持および推奨しているものの、従来のバイナリ形式との下位互換性を維持しています。さらに、ほとんどのバージョンの Microsoft Excel は、CSV、DBF、SYLK、DIF、およびその他のレガシー形式を読み取ることができます。Excel 2007 では、主に DOS ベースのプログラムからの古いファイル形式のサポートが削除されました。[ 39 ]
OpenOffice.org はExcel フォーマットのドキュメントを作成しました。このフォーマットには 97-2003 OLEフォーマットと古いストリームフォーマットの 2 つの時代が存在します。[ 40 ] Microsoft は Excel バイナリフォーマット仕様を無料でダウンロードできるようにしています。[ 41 ]
Excel 2002 [ 38 ]で導入されたXMLスプレッドシート形式は、VBA マクロの保存など、より高度な機能がいくつか欠けているシンプルな XML ベースの形式です。この形式の想定されるファイル拡張子は.xmlですが、プログラムは.xls拡張子の XML ファイルも正しく処理します。この機能は、バイナリ ファイル形式を実装せずに「Excel へのエクスポート」機能を提供するために、サードパーティ アプリケーション ( MySQL Query Browserなど) で広く使用されています。次の例は、 Book1.xmlまたはBook1.xlsのどちらで保存しても Excel で正しく開かれます。
<?xml version="1.0"?> <Workbook xmlns= "urn:schemas-microsoft-com:office:spreadsheet" xmlns:o= "urn:schemas-microsoft-com:office:office" xmlns:x= "urn:schemas-microsoft-com:office:excel" xmlns:ss= "urn:schemas-microsoft-com:office:spreadsheet" xmlns:html= "http://www.w3.org/TR/REC-html40" > <Worksheet ss:Name= "Sheet1" > <Table ss:ExpandedColumnCount= "2" ss:ExpandedRowCount= "2" x:FullColumns= "1" x:FullRows= "1" > <Row> <Cell><Data ss:Type= "String" >名前</Data></Cell> <Cell><Data ss:Type= "String" >例</Data></Cell> </Row> <Row> <Cell><Data ss:Type= "String" >値</Data></Cell> <Cell><Data ss:Type= "Number" > 123 </Data></Cell> </Row> </Table> </Worksheet> </Workbook>Microsoft Excel 2007は、 Microsoft Office 2007スイートの他の製品と同様に、新しいファイル形式を導入しました。その最初の形式(.xlsx)は、Office Open XML(OOXML)仕様で定義されています。
Microsoft AccessやMicrosoft Word、ExcelなどのWindowsアプリケーションは、互いに通信し、互いの機能を使用できます。最も一般的なのはDynamic Data Exchangeです。Microsoftはこれを強く非推奨としていますが、これはWindows上で実行されているアプリケーション間でデータを送信する一般的な方法であり、公式のMS出版物では「地獄のプロトコル」と呼ばれています。[ 43 ]名前が示すように、アプリケーションが計算や表示のために他のアプリケーションにデータを提供できるようにします。これは金融市場で非常に一般的で、BloombergやReutersなどの重要な金融データサービスに接続するために使用されます。
OLEオブジェクトリンクと埋め込みにより、Windowsアプリケーションが別のアプリケーションを制御して、データのフォーマットや計算を行うことができます。これは、「埋め込み」という形をとる場合があり、アプリケーションが別のアプリケーションを使用して、より適したタスクを処理します。たとえば、PowerPointプレゼンテーションをExcelスプレッドシートに埋め込んだり、その逆を行ったりできます。[ 44 ] [ 45 ] [ 46 ] [ 47 ]
Excelユーザーは、Microsoft Officeの機能(例えば、Officeデータ接続ファイル形式で構築された接続など)を介して外部データソースにアクセスできます。Excelファイル自体は、Microsoftが提供するODBC.odcドライバーを使用して更新できます。
Excelは、複数のプログラミングインターフェースを介してリアルタイムでデータを受け入れることができ、これにより、BloombergやReutersなどの多くのデータソースと通信することが可能になります(Power Plus Proなどのアドインを介して)。
あるいは、Microsoft Query はMicrosoft Excel 内でODBC ベースのブラウジングを提供します。[ 51 ] [ 52 ] [ 53 ]
プログラマーは、Microsoft Excel以外のさまざまなアプリケーションや環境でExcelスプレッドシートを開くためのAPIを作成してきました。これには、ActiveXコントロールやAdobe Flash Playerなどのプラグインを使用してWeb上でExcelドキュメントを開く方法が含まれます。Apache POIオープンソースプロジェクトは、Excelスプレッドシートファイルの読み書きを行うためのJavaライブラリを提供しています。
Microsoft Excelの保護機能には、いくつかの種類のパスワードが用意されています。
ドキュメントを開くためのパスワードを除くすべてのパスワードは、ドキュメントの作成に使用された Microsoft Excel のバージョンに関係なく、即座に削除できます。これらの種類のパスワードは、主にドキュメントの共同作業に使用されます。このようなパスワードで保護されたドキュメントは暗号化されず、設定されたパスワードからのデータソースはドキュメントのヘッダーに保存されます。ワークブックを保護するためのパスワードは例外です。このパスワードが設定されると、ドキュメントは標準パスワード「VelvetSweatshop」で暗号化されますが、このパスワードは一般に知られているため、実際にはドキュメントに追加の保護は追加されません。侵入者がドキュメントにアクセスするのを防ぐことができる唯一の種類のパスワードは、ドキュメントを開くためのパスワードです。この種の保護の暗号化の強度は、ドキュメントの作成に使用された Microsoft Excel のバージョンに大きく依存します。
Microsoft Excel 95以前のバージョンでは、ファイルを開くためのパスワードは16ビットキーに変換されるため、瞬時に解読できます。Excel 97/2000では、パスワードは40ビットキーに変換されますが、最新の機器を使用すればこれも非常に高速に解読できます。レインボーテーブルを使用するサービス(例:Password-Find)の場合、保護を解除するには数秒かかることがあります。さらに、パスワードクラッキングプログラムは、 1秒間に数十万個のパスワードを総当たり攻撃できるため、文書を解読できるだけでなく、元のパスワードも特定できます。
Excel 2003/XPでは暗号化機能が若干向上しており、ユーザーはシステムで使用可能な任意の暗号化アルゴリズムを選択できます(暗号化サービスプロバイダを参照)。CSP のおかげでExcelファイルは復号化できないため、開くためのパスワードを削除することはできませんが、総当たり攻撃の速度は依然としてかなり速いままです。しかしながら、デフォルトでは古いExcel 97/2000 のアルゴリズムが設定されています。そのため、デフォルト設定を変更しないユーザーは、ドキュメントを確実に保護することができません。
Excel 2007では状況が根本的に変化しました。128ビットの鍵を持つ最新のAESアルゴリズムが復号化に使用されるようになり、ハッシュ関数SHA1を5万回使用することで、総当たり攻撃の速度が毎秒数百個のパスワードにまで低下しました。Excel 2010では、パスワードを鍵に変換するためにSHA1を10万回使用することで、デフォルトの保護強度が2倍に強化されました。

Excel Mobile は、XLSX ファイルを編集できる表計算プログラムです。セル内のテキストの編集と書式設定、数式の計算、表計算内の検索、行と列の並べ替え、ウィンドウ枠の固定、列のフィルター、コメントの追加、グラフの作成が可能です。ただし、ドキュメントの端以外での列や行の追加、列や行の並べ替え、行や列の削除、表計算タブの追加はできません。[ 57 ] [ 58 ] [ 59 ] [ 60 ] [ 61 ] [ 62 ] 2007 バージョンでは、画面解像度が限られている場合に対応するために全画面モードを使用する機能や、ワークシートの異なる部分を一度に表示するための分割ウィンドウを使用する機能があります。[ 60 ]保護設定、ズーム設定、オートフィルター設定、特定のグラフ書式設定、非表示シート、その他の機能は Excel Mobile ではサポートされておらず、ブックを開いて保存すると変更されます。[ 61 ] 2015年に、Excel MobileがWindowsストア(後にMicrosoftストア)でWindows 10およびWindows 10 Mobile向けに利用可能になった。[ 63 ] [ 64 ]
Excel for the webは、Microsoft Excelの軽量版で、Office on the webの一部として提供されています。Office on the webには、Microsoft WordとMicrosoft PowerPointのWeb版も含まれています。
Excel for the web では、デスクトップ版 Excel で利用できる機能のほとんどを表示できますが、挿入や編集はできない場合があります。外部接続を使用するグラフなど、特定のデータ接続は Excel for the web では利用できません。また、Excel for the web では、Excel 4.0 のマクロや Excel 5.0 のダイアログ シートなどの旧バージョンの機能も表示できません。さらに、一部の Excel 関数の動作方法にも若干の違いがあります。[ 65 ]
Microsoft Excel Viewer は、Excel で作成されたスプレッドシート ドキュメントを表示および印刷するためのMicrosoft Windows用のフリーウェア プログラムでした。 [ 66 ] Microsoft は、2019 年 2 月に Excel Viewer 2007 (SP3) の最後のセキュリティ アップデートをリリースし、2018 年 4 月にビューアのサポートを終了しました。[ 67 ] [ 68 ]
Microsoft が最初にリリースしたバージョンは Excel 97 Viewer でした。[ 69 ] [ 70 ] Excel 97 Viewer は、ハンドヘルド PC用のWindows CEでサポートされていました。[ 71 ] 2004 年 10 月に、Microsoft は Excel Viewer 2003 をリリースしました。 [ 72 ] 2007 年 9 月に、Microsoft は Excel Viewer 2003 Service Pack 3 (SP3) をリリースしました。[ 73 ] 2008 年 1 月に、Microsoft は Excel Viewer 2007 (折りたたみできないリボンインターフェイスを特徴とする) をリリースしました。[ 74 ] 2009 年 4 月に、Microsoft は Excel Viewer 2007 Service Pack 2 (SP2) をリリースしました。[ 75 ] 2011 年 10 月に、Microsoft は Excel Viewer 2007 Service Pack 3 (SP3) をリリースしました。[ 76 ]
Microsoft は、Excel ファイルを無料で表示および印刷したいユーザーには、Windows 10の場合はExcel Mobileアプリケーションを使用し、 Windows 7およびWindows 8の場合はファイルをOneDriveにアップロードし、Microsoft アカウントを使用してExcel for the webを使用してブラウザーで開くことを推奨しています。[ 67 ] [ 77 ]
一般的な表計算ソフトの問題に加えて、Excel特有の問題としては、数値の精度、誤解を招く統計関数、剰余関数のエラー、日付の制限などが挙げられます。
Excelは15桁の精度を使用していますが、ユーザーの要求に応じてさらに多くの桁数(最大30桁)を表示できます。ただし、表示される桁数は実際の計算に使用される桁数とは異なるため、たとえば2つの数値の差は、表示される値の差と異なる場合があります。このようなずれは通常15桁目以降に発生しますが、特に非常に大きい数値や非常に小さい数値の場合、例外が発生することがあります。2つの数値が等しいかどうかは予測できないため、数値の自動比較(たとえば、ExcelのIf関数を使用)に基づいて判断を行うと、重大なエラーが発生する可能性があります。
図では、Excel で分数 1/9000 が表示されています。この数値は小数点以下が無限に続く 1 の列ですが、Excel では先頭の 15 桁のみが表示されます。2 行目では、この分数に 1 が加算され、ここでも Excel は 15 桁のみを表示します。3 行目では、Excel を使用して合計から 1 が減算されます。2 行目の合計は小数点以下が 11 個しかないため、この表示値から 1 を減算すると、3 つの 0 の後に 11 個の 1 が続くことになります。しかし、3 行目で Excel が報告する差は、3 つの 0 の後に 13 個の 1 が続き、さらに 2 つの誤った桁が追加されています。これは、Excel が表示する桁数よりも約 0.5 桁多く計算しているためです。
Excel は、 IEEE 754 仕様の 1985 年版を修正したものを使用しています。[ 78 ] Excel の実装では、バイナリ表現と 10 進数表現間の変換が行われ、その結果、単純な 15 桁精度から期待されるよりも平均的に精度が向上しますが、精度が低下する場合もあります。詳細はメイン記事を参照してください。
ユーザーによる計算の正確さに加えて、Excel が提供する関数の正確さの問題も提起される可能性がある。特に統計関数の分野では、Excel は計算速度のために正確さを犠牲にしていると批判されている。[ 79 ] [ 80 ]
Excel の多くの計算は VBA を使用して実行されるため、変数型やユーザーが要求する精度によって変化する VBA の精度も問題となります。[ 81 ]
Excel の統計ツールの正確性と利便性については、データが欠落している場合の処理の誤り、丸め処理や大きな数値の処理の不備による誤った値の返出、一部のセル値が変更された場合にのみスプレッドシートの計算が選択的に更新されること、統計ツールのセットが限られていることなどについて批判されてきました。[82][83][84][85][86] Microsoft は、これらの問題の一部が Excel 2010 で解決されたと発表しました。[ 87 ]
Excel は剰余演算に問題があります。結果が極端に大きい場合、Excel はエラー警告を返します。#NUM!答えの代わりに。[ 88 ]
Excel は 1900 年 2 月 29 日を含めており、例えば 2100 年は閏年ではないと正しく扱われているにもかかわらず、1900 年を閏年として誤って扱っています。 [ 89 ] [ 90 ]そのため、(例えば)1900 年 2 月 1 日と 1900 年 3 月 1 日の間の日付をカウントする数式は、誤った結果を返します。このバグはLotus 1-2-3に由来し、コンピュータのメモリを節約するために意図的に実装され、バグの互換性のために Excel にも意図的に実装されました。[ 91 ]この遺産は後に Office Open XML ファイル形式に引き継がれました。[ 92 ]
Excel は 1900 ~ 9999 の範囲の日付をサポートしていますが、1899 年 12 月 31 日は 0 と入力すると 0-jan-1900 と表示されます。
1900年1月1日の瞬間として扱うことで、1日の端数を時間、分、日数に変換する方法は、負の端数には適用できません。[ 93 ]
Excelが日付として解釈する形式のテキストを入力すると、意図せず標準の日付形式に変換されてしまうことがあります。同様の問題は、数値の浮動小数点表記形式のテキストを入力する場合にも発生します。これらの場合、結果から元の正確なテキストを復元することはできません。曖昧なテキストを入力する前にセルをテキスト形式に設定することで、Excelがテキストを変換するのを防ぐことができます。
この問題は、例えばバイオインフォマティクスにおけるDNA解析においてよく知られた問題を引き起こしています。2004年に初めて報告されたように[ 94 ] 、遺伝学者はExcelが特定の遺伝子名を自動的に誤って日付に変換することを発見しました。2016年の追跡調査では、査読済みの科学雑誌論文の多くが影響を受けており、「選択された雑誌のうち、遺伝子リストを含むExcelファイルを持つ公開論文のうち、遺伝子名の誤りの影響を受けているものの割合は19.6%である」ことが判明しました[ 95 ] 。Excelはコピー&ペーストされたデータを解析し、それが何であるかをExcelが判断して変更することがあります。例えば、MARCH1 (膜結合リングCH型指1)は3月1日 (1-Mar) に変換され、SEPT2 (Septin 2)は9月2日 (2-Sep) などに変換されます。[ 96 ]一部の二次ニュースソース[ 97 ]はこれをExcelの不具合として報告しましたが、2016年の論文の原著者は、Excelを誤用した研究者に責任があると判断しました。[ 95 ] [ 98 ]
2020年8月、HUGO遺伝子命名委員会(HGNC)は、「データ処理と検索に影響を与える記号」に関する問題を回避するために、遺伝子命名に関する新しいガイドラインをNature誌に発表しました。 2020年現在、27個の遺伝子が改名され、その中には遺伝子名が誤って日付に変換されるのを避けるため、MARCH1をMARCHF1に、SEPT1をSEPTIN1に変更したものも含まれている。[ 99 ]
2023年10月、マイクロソフトは変換を無効にできる設定オプションを導入しました。[ 100 ]
以下の関数は、255文字を超える文字列を渡すと誤った結果を返します。[ 101 ]
type()誤って16を返します。これは「エラー値」を意味します。IsText()VBA オブジェクトのメソッドとして呼び出された場合WorksheetFunction(つまり、WorksheetFunction.IsText()VBA 内)、誤って「false」を返します。Microsoft Excel では、同じ名前のドキュメントを 2 つ開くことはできず、代わりに次のエラーが表示されます。
理由は、リンクされたセルでの計算の曖昧さです。セルがあり='[Book1.xlsx]Sheet1'!$G$33、「Book1」という名前の本が2冊開いている場合、ユーザーがどちらの本を指しているのかを判別する方法がありません。[ 103 ]

1982年、マイクロソフトは初の表計算ソフトであるMultiplanを発売し、 CP/Mシステムで人気を博しました。しかし、MultiplanはMS-DOSシステムでは競争に苦戦し、 Lotus 1-2-3に市場シェアを奪われました。Lotus 1-2-3は1983年までに表計算ソフトの主流となり、Multiplanとそれ以前のVisiCalcの両方を凌駕しました。[ 104 ] [ 105 ]
Multiplan の市場シェアの低下に対処するため、マイクロソフトは 1983 年に「Odyssey」というコードネームの新しい高度な表計算プログラムの開発を開始しました。このプロジェクトは、設計を担当した Jabe Blumenthal と Multiplan の主要開発者である Doug Klunder によって主導されました。当初は CP/M と MS-DOS を実行する IBM PC 向けに計画されていましたが、Lotus がApple Macintosh用の統合プログラムである Jazz の開発を開始し、Lotus 1-2-3 が IBM PC での優位性を維持した 1984 年初頭に、プロジェクトの焦点が変わりました。[ 106 ] 1984 年 3 月、ビル・ゲイツはOdyssey の開発を Macintosh プラットフォームに変更しました。これには、システムの 512 KB メモリをサポートする必要がありました。この決定によりプロジェクトは 9 か月遅れ、その後、Klunder は一時的にマイクロソフトを離れてレタス栽培の仕事に就き、プロジェクトはWang Laboratoriesの元開発者である Philip Florence によって主導されました。フローレンスが心臓発作を起こした後、クルンダーはプロジェクトを完成させるために戻ってきた。[ 104 ] [ 105 ] [ 107 ]
1985 年 5 月 2 日、Apple ComputerのSteve Jobsと Bill Gates は、ニューヨーク市のTavern on the Greenで共同記者会見を開き、Apple の Macintosh プラットフォーム向け Excel を公に発表しました。発表後、ソフトウェアは 1985 年 9 月 30 日に正式に販売開始されました。 [ 104 ] [ 105 ] [ 107 ] [ 108 ]最初の Windows 版である Excel 2.05 は、Macintosh バージョン 2.2 に合わせて設計されたもので、1987 年 11 月 19 日にリリースされました。[ 104 ] [ 109 ] [ 110 ] 1990 年に米国公認会計士協会が行った会員調査では、回答者の 2% が Excel をスプレッドシートとして使用し、3% がデータベースとして使用し、8% がグラフィックとして使用していることが分かりました。[ 111 ] Lotus は1-2-3 を Windows に移植するのが遅く、1990 年代初頭には Excel が 1-2-3 の販売台数を上回り始め、Microsoft が主要な PC ソフトウェア開発会社としての地位を確立するのに貢献しました。この成果により、Microsoft は有力な競合相手としての地位を確固たるものにし、 GUIソフトウェア開発における将来性を示しました。Microsoft は、約 2 年ごとに定期的に新製品をリリースすることで、その優位性を維持しました。
Excel 2.0は、 Intelプラットフォーム向けにリリースされた最初のExcelバージョンです。2.0以前のバージョンは、Apple Macintoshでのみ利用可能でした。
最初のWindowsバージョンはMacバージョンに対応するため「2」とラベル付けされました。1987年10月6日に発表され、11月19日にリリースされました。[ 112 ]これにはWindowsのランタイムバージョンが含まれていました。[ 113 ]
1989年、 BYTE誌はWindows版ExcelをBYTEアワードの「優秀賞」受賞作品の一つに選出した。同誌は、この「傑出した」Macintosh版の移植版は「輝きを放ち」、ユーザーインターフェースはオリジナル版と同等かそれ以上だと評した。
ツールバー、描画機能、アウトライン機能、アドインサポート、3Dチャート、その他多くの新機能が含まれています。[ 113 ]
Microsoft Office 3.0に付属していたこのバージョンでは、自動入力機能が導入されました。[ 114 ]
また、 Excel 4.0 のイースターエッグでは、Lotus 1-2-3 を表す 1 から 3 までの数字が踊る隠されたアニメーションが明らかになり、その後 Excel のロゴによって押しつぶされます。[ 115 ]
Microsoft Office 4.2 および 4.3に含まれるバージョン 5.0 では、Excel に Visual Basic for Applications (VBA) が追加されました。これはVisual Basicをベースとしたプログラミング言語で、 Excel でのタスクの自動化や、ワークシートで使用するユーザー定義関数(UDF) の提供を可能にします。VBA には、フル機能の統合開発環境(IDE) が含まれています。マクロ記録機能を使用すると、ユーザーの操作を再現する VBA コードを作成できるため、日常的なタスクを簡単に自動化できます。VBA を使用すると、フォームやワークシート内のコントロールを作成してユーザーと通信できます。この言語はActiveX ( COM ) DLLの使用 (作成は不可) をサポートしています。後のバージョンでは、クラス モジュールのサポートが追加され、基本的なオブジェクト指向プログラミング技術を使用できるようになりました。
VBAによる自動化機能によって、Excelはマクロウイルスの標的となりました。これは、ウイルス対策製品がこれらのウイルスを検出するようになるまで、深刻な問題を引き起こしました。マイクロソフトは、マクロを完全に無効にする機能、ワークブックを開くときにマクロを有効にする機能、信頼できる証明書で署名されたすべてのマクロを信頼する機能を追加するなど、悪用を防ぐための対策を遅ればせながら講じました。
Excel のバージョン 5.0 から 9.0 には、Doomのようなミニゲーム「Hall of Tortured Souls」など、さまざまなイースターエッグが含まれていますが、バージョン 10 以降、マイクロソフトは製品からこのような文書化されていない機能を削除する措置を講じています。[ 116 ]
バージョン5.0は、Windows 3.1向けの16ビットx86版としてリリースされ、その後、NT 3.51(x86/Alpha/PowerPC)向けの32ビット版としてリリースされました。

1995年にWindows 95版Microsoft Officeとともにリリースされたこのバージョンは、Excel 5.0以降の最初のメジャーバージョンであり、Officeアプリケーション全体が同じメジャーバージョン番号に標準化されたため、Excel 6.0は存在しません。
内部処理を32ビットに書き換えました。外部への変更はほとんどありませんが、より高速で安定した動作を実現しています。
Excel 95には、開発者の名前と顔がイースターエッグとして登場する一連の部屋からなる「拷問された魂のホール」と呼ばれる、Doomのような隠しミニゲームが含まれていました。 [ 117 ]
Office 97 (x86およびAlpha版)に含まれていました。これは、ペーパークリップ型のオフィスアシスタントを導入し、Excel内部のBasicではなく標準のVBAを使用するようになった、メジャーアップグレードでした。また、現在では削除されている自然言語ラベルも導入されました。
このバージョンのExcelには、イースターエッグとしてフライトシミュレーターが同梱されています。

Office 2000に搭載されました。これはマイナーアップデートでしたが、クリップボードが改良され、複数のオブジェクトを同時に保持できるようになりました。Excel 97で頻繁に勝手に表示されて多くのユーザーを悩ませていたOfficeアシスタントも、より邪魔にならないようになりました。
「Dev Hunter」(スパイハンターに触発されたもの)という小さな3Dゲームがイースターエッグとして含まれていた。[ 118 ] [ 119 ]
Office XPに同梱されており、以前のバージョンに比べて若干の機能強化が施されています。
Office 2003に同梱されており、以前のバージョンに比べて若干の機能強化が施されています。

Office 2007に含まれています。このリリースは、以前のバージョンからのメジャーアップグレードでした。他の更新された Office 製品と同様に、2007 の Excel は新しいリボン メニュー システムを採用しました。これはユーザーが慣れ親しんだものとは異なり、賛否両論の反応がありました。ある調査では、非常に経験豊富なユーザーと従来のWIMP インターフェースを備えたワード プロセッシング アプリケーションのユーザーを除いて、ユーザーからかなり好評だったと報告されていますが、効率と整理に関してはあまり納得していませんでした。[ 120 ]しかし、オンライン調査では、回答者の大多数がこの変更に対して否定的な意見を持っており、上級ユーザーは中級ユーザーよりも「やや否定的」で、ユーザーは生産性の低下を自己評価していると報告しています。
追加された機能には、テーブル[ 121 ]と編集可能なビジネス図のSmartArtセットが含まれます。また、名前マネージャによる名前付き変数の管理機能の改善、( x, y )座標ラベルと任意の太さの線が可能なグラフの書式設定の柔軟性の大幅な向上も追加されました。ピボットテーブルにもいくつかの改善が加えられました。
他のオフィス製品と同様に、マクロを含むワークブック用の.xlsmやマクロを含まないワークブック用の.xlsxなど、Office Open XMLファイル形式が導入されました。 [ 122 ]
具体的には、以前のバージョンのサイズ制限の多くが大幅に緩和されました。例えば、行数は1,048,576行(2 20)に、列数は16,384列(2 14、右端の列はXFD)になりました。これにより、有効なA1参照と名前付き範囲の定義が変わります。このバージョンでは、スプレッドシートの計算にマルチコアがより広く利用されるようになりましたが、VBAマクロは並列処理されず、XLLアドインはスレッドセーフであり、登録時にその旨が明示されている場合にのみ並列実行されました。

Office 2010に含まれているこのバージョンは、バージョン13 がスキップされたため、v12.0 の次のメジャー バージョンとなります。
マイナーな機能強化と64ビットサポート[ 123 ]には、以下が含まれます。
Office 2013には、このリリースに含まれる多くの新しいツールとともに、以下の機能が含まれています。
Office 2016には、このリリースに含まれる多くの新しいツールとともに、以下の機能が含まれています。
マイクロソフトは、OfficeやExcelを個別のバージョンとしてリリースしなくなりました。代わりに、新機能は時間とともに自動的に追加されます。バージョン番号は16.0のままです。それ以降は、新機能が実装されるおおよその日付のみを示すことができます。新機能には以下が含まれます。
Microsoft WindowsおよびmacOS向けのMicrosoft Office 2024(Office 16.0の4番目の永続ライセンス版)は、2024年10月1日にリリースされました。[ 131 ]

Excelは、初期の電子スプレッドシートに比べてユーザーインターフェースに多くの改良が加えられていますが、その本質はオリジナルのスプレッドシートソフトウェアであるVisiCalcと同じです。つまり、プログラムは行と列に整理されたセルを表示し、各セルにはデータまたは数式を含めることができ、他のセルへの相対参照または絶対参照を指定できます。
Mac GUI ベースのバージョンをモデルにした Windows 版 Excel 2.0 は、当時まだ黎明期だった Windows 環境のインストールベースを間接的に拡大した。Excel 2.0 は Windows 2.0 より 1 か月前にリリースされたが、1987 年の時点では Windows のインストールベースが非常に少なかったため、Microsoft は Excel 2.0 に Windows 1.0 のランタイム バージョンをバンドルする必要があった。[ 134 ] Microsoft Word とは異なり、Excel の DOS 版は存在しなかった。
Excelは、ユーザーがスプレッドシートの外観(フォント、文字属性、セルの外観)を定義できる最初の表計算ソフトとなりました。また、セルの再計算をインテリジェントに行う機能も導入しました。これにより、変更されたセルに依存するセルのみが更新されるようになりました(以前の表計算ソフトは常にすべてを再計算するか、特定のユーザーコマンドを待っていました)。Excelはオートフィル機能も導入しました。これは、選択ボックスをドラッグして拡張することで、セルまたは行の内容を隣接するセルまたは行に自動的にコピーし、セル参照や内容を自動的にインクリメントすることで、コピーをインテリジェントに調整する機能です。さらに、Excelは高度なグラフ作成機能も導入しました。
Excelは現代のオフィスワークにおいて中心的な位置を占めています。2022年の調査によると、オフィスワーカーの3分の2が1時間に少なくとも1回はExcelを使用しており、全労働時間の38%をExcel内で費やしています。[ 135 ]毎月7億5000万人から12億人のユーザーがExcelにアクセスしていると推定されています。[ 136 ]
Excelは広く使われているため、ハッカーの攻撃を受けています。Excelはインターネットに直接公開されていませんが、攻撃者が被害者にExcelでファイルを開かせ、Excelに適切なセキュリティバグがあれば、攻撃者は被害者のコンピュータを制御できます。[ 137 ]英国のGCHQはこの目的のためにTORNADO ALLEYというツールを持っています。[ 138 ] [ 139 ]
イースターエッグ以外にも、テトリス、2048、スクラブル、ヤッツィー、アングリーバード、パックマン、シヴィライゼーション、モノポリー、バトルシップ、ブラックジャック、スペースインベーダーなど、数多くのゲームがExcelで作成または再現されています。 [ 140 ] [ 141 ] [ 142 ] [ 143 ] [ 144 ]
2020年、ExcelはFinancial Modeling World Cupの登場によりeスポーツとなった。[ 145 ] [ 146 ]
Excel では、プログラムの起動方法を制御するために使用できるオプションのスイッチがいくつか用意されています。この記事では、スイッチの一覧と各スイッチの説明を提供します。
外部データへのアクセスは、Office Data Connection (ODC) ファイル (.odc) などの接続ファイルを介して行われます。
堅牢なソリューションを作成するには、常にVBAコードを含める必要があります...
Query は、Excel 97 内で使用できるデータ取得ツール (ODBC ブラウザー) です。これにより、ODBC ドライバーが利用可能な外部リレーショナル データベースに対してクエリを作成して保存できます。
WorksheetFunction.IsText(){{cite web}}: CS1 maint: bot: 元の URL の状態が不明です (リンク)