Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

Excelで周期表を作成する2つの簡単な方法|数式自動化とインタラクティブ機能まで完全解説

Excelを使えば、化学の学習や資料作成に役立つ周期表を簡単に作成できます。この記事では、手動で作成する方法VBAマクロを活用したインタラクティブな周期表を作成する方法の2つを、具体的な手順とともに詳しく解説します。

方法1:手動で周期表を作成する

1.1. 特性テーブルにデータを入力する

周期表の各元素には、それぞれ固有の特性(プロパティ)があります。これらの特性は、元素が示すさまざまな性質・傾向・関係性を表すものであり、主なものは以下の通りです。

元素記号:各元素には、その化学元素を表す1〜2文字の略語である固有の記号が割り当てられています。

原子番号:原子番号は、その元素の原子核に含まれる陽子の数を指します。これはすべての元素にとって固有の値です。

原子量:原子量は、特定の元素の原子の重さ(質量)を表します。原子内の陽子・中性子・電子の質量が含まれ、原子質量単位(amu)で測定されます。

元素の分類:元素の分類とは、特性や特徴に基づいて元素をカテゴリごとに分類することです。これにより、各元素の一般的な性質を理解しやすくなります。

ここでは、118個すべての元素の特性を表形式でまとめたデータを使用します。この特性テーブルは、周期表を作成するうえで不可欠なデータとなります。

Excelで周期表を作成する2つの簡単な方法|数式自動化とインタラクティブ機能まで完全解説

1.2. 周期表のフォーマットを作成する

  • 列には1〜18の族番号を入力します。
  • 行には1〜7の周期番号を入力します。
  • 各元素の記号を、族番号と周期番号に対応した適切なセルに入力します。
  • 必要に応じて表の書式を調整しましょう。行の高さや列の幅を変更したり、フォントサイズ・色・セルの枠線を工夫したりすると、視覚的に分かりやすく美しい表になります。

Excelで周期表を作成する2つの簡単な方法|数式自動化とインタラクティブ機能まで完全解説

1.3. Excelの数式で周期表を自動化する

次に、数式を使って元素の情報を自動的に表示できるようにしましょう。

  • 任意の元素名をセルD5に入力します。
  • D5:E5の範囲を中央揃えで結合(Merge & Center)します。

Excelで周期表を作成する2つの簡単な方法|数式自動化とインタラクティブ機能まで完全解説

  • K4:M4の範囲を結合して中央揃えにし、フォントサイズを16に設定します。

Excelで周期表を作成する2つの簡単な方法|数式自動化とインタラクティブ機能まで完全解説

  • K5:M7の範囲を結合して中央揃えにし、フォントサイズを48に設定します。

Excelで周期表を作成する2つの簡単な方法|数式自動化とインタラクティブ機能まで完全解説

  • K8:M8の範囲を結合して中央揃えにし、フォントサイズを20に設定します。

Excelで周期表を作成する2つの簡単な方法|数式自動化とインタラクティブ機能まで完全解説

  • K9:M9の範囲を結合して中央揃えにし、フォントサイズを16に設定します。

Excelで周期表を作成する2つの簡単な方法|数式自動化とインタラクティブ機能まで完全解説

  • IFERROR関数とVLOOKUP関数を組み合わせた数式を挿入します。

セルK4に入力する数式:

=IFERROR(VLOOKUP($D$5, Properties!$B$5:$F$123,2,FALSE), "")

セルK5に入力する数式:

=IFERROR(VLOOKUP($D$5, Properties!$B$5:$F$123,1,FALSE), "")

セルK8に入力する数式:

=IFERROR(VLOOKUP($D$5, Properties!$B$5:$F$123,3,FALSE), "")

セルK9に入力する数式:

=IFERROR(VLOOKUP($D$5, Properties!$B$5:$F$123,4,FALSE), "")

Excelで周期表を作成する2つの簡単な方法|数式自動化とインタラクティブ機能まで完全解説

数式の解説

  • VLOOKUP($D$5, Properties!$B$5:$F$123,2,FALSE)

VLOOKUP関数は、「Properties」ワークシートのB5:F123範囲の中からセルD5の値を検索します。一致する値が見つかった場合、指定した範囲の2列目(2)の値を返します。FALSEは完全一致を意味します。
結果:1

  • IFERROR(VLOOKUP($D$5, Properties!$B$5:$F$123,2,FALSE), "")

IFERROR関数は、VLOOKUP関数の結果を返します。エラーが発生した場合は空文字列("")を返します。
結果:1

  • これにより、セルK4に原子番号、セルK5に元素記号、セルK8に元素名、セルK9に原子量が表示されます。

Excelで周期表を作成する2つの簡単な方法|数式自動化とインタラクティブ機能まで完全解説

  • セルD5の元素記号を変更すると、K4:K9の範囲にその元素の特性が自動的に表示されます。

Excelで周期表を作成する2つの簡単な方法|数式自動化とインタラクティブ機能まで完全解説

方法2:インタラクティブな周期表を作成する

2.1. インタラクティブな表形式を作成する

  • 前の方法と同じ要領で周期表のフォーマットを作成します。
  • Propertiesワークシートの特性テーブルには、合計10種類の元素分類が記録されています。これらの元素タイプをD5:D14の範囲に入力します。

Excelで周期表を作成する2つの簡単な方法|数式自動化とインタラクティブ機能まで完全解説

2.2. 元素タイプごとに色を割り当てる

  • ブックからVBAマクロエディターを起動します。VBAコードの書き方がわからない場合は、ExcelでVBAコードを記述する方法を解説した記事を参考にしてください。
  • 以下のコードをVBAマクロエディターに貼り付けます。
  • 実行(Run)ボタンまたはF5キーを押してコードを実行します。

Excelで周期表を作成する2つの簡単な方法|数式自動化とインタラクティブ機能まで完全解説

Sub Property_Color()
    '変数の宣言
    Dim myRng As Range
    '変数の設定
    Set myRng = ActiveSheet.Range("F5:F14")
    'セルごとに異なる色を設定
    myRng.Cells(1).Interior.ColorIndex = 10
    myRng.Cells(2).Interior.ColorIndex = 24
    myRng.Cells(3).Interior.ColorIndex = 8
    myRng.Cells(4).Interior.ColorIndex = 27
    myRng.Cells(5).Interior.ColorIndex = 17
    myRng.Cells(6).Interior.ColorIndex = 14
    myRng.Cells(7).Interior.ColorIndex = 15
    myRng.Cells(8).Interior.ColorIndex = 22
    myRng.Cells(9).Interior.ColorIndex = 36
    myRng.Cells(10).Interior.ColorIndex = 4
End Sub
  • 実行すると、F5:F14の範囲にある各元素タイプに異なる色が割り当てられます。

Excelで周期表を作成する2つの簡単な方法|数式自動化とインタラクティブ機能まで完全解説

VBAコードの解説

myRng.Cells(1).Interior.ColorIndex = 10
    myRng.Cells(2).Interior.ColorIndex = 24
    myRng.Cells(3).Interior.ColorIndex = 8
    myRng.Cells(4).Interior.ColorIndex = 27
    myRng.Cells(5).Interior.ColorIndex = 17
    myRng.Cells(6).Interior.ColorIndex = 14
    myRng.Cells(7).Interior.ColorIndex = 15
    myRng.Cells(8).Interior.ColorIndex = 22
    myRng.Cells(9).Interior.ColorIndex = 36
    myRng.Cells(10).Interior.ColorIndex = 4

この部分のコードでは、myRng範囲の各セルに対して、それぞれ異なる色(ColorIndex)を割り当てています。

2.3. 元素タイプに基づいて周期表に色を付ける

  • 以下のコードを新しいモジュールに貼り付けます。
  • 実行(Run)ボタンまたはF5キーを押してコードを実行します。

Excelで周期表を作成する2つの簡単な方法|数式自動化とインタラクティブ機能まで完全解説

Sub Periodic_Table()
    '変数の宣言
    Dim PropertyRng As Range
    Dim ElementRng As Range
    Dim TableRng As Range
    Dim Property As String
    Dim ColIndex As Integer
    '変数の設定
    Set PropertyRng = Sheets("Properties").Range("B5:F122")
    Set ElementRng = ActiveSheet.Range("D5:F14")
    Set TableRng = ActiveSheet.Range("D18:U27")
    '特性テーブルの各セルをループ処理
    For i = 1 To TableRng.Cells.Count
    Property = "No Property"
        '元素の特性を検索
        For j = 1 To PropertyRng.Rows.Count
            If TableRng.Cells(i) = PropertyRng.Cells(j, 1) Then
                Property = PropertyRng.Cells(j, 5)
            End If
        Next j
        '元素の特性に応じてセルの色を変更
        For k = 1 To ElementRng.Rows.Count
            If Property = ElementRng.Cells(k, 1) Then
                ColIndex = ElementRng.Cells(k, 3).Interior.ColorIndex
                TableRng.Cells(i).Interior.ColorIndex = ColIndex
            End If
        Next k
    Next i
End Sub
  • 実行すると、周期表の各元素が、その元素タイプに割り当てられた色で自動的に塗り分けられます。

Excelで周期表を作成する2つの簡単な方法|数式自動化とインタラクティブ機能まで完全解説

VBAコードの解説

For i = 1 To TableRng.Cells.Count
    Property = "No Property"
        For j = 1 To PropertyRng.Rows.Count
            If TableRng.Cells(i) = PropertyRng.Cells(j, 1) Then
                Property = PropertyRng.Cells(j, 5)
            End If
        Next j
  • この部分では、2つのネストされたループがTableRng範囲とPropertyRng範囲を順に処理します。TableRng範囲の各ループ処理のたびに、変数Propertyが「No Property」という値で初期化されます。内側のループは、TableRng範囲の現在のセルの値がPropertyRng範囲の1列目のいずれかの値と一致するかどうかを確認し、一致した場合はPropertyRng範囲の5列目の対応する値でProperty変数を更新します。内側のループは一致を探し続け、最後に見つかった一致の値でProperty変数を更新します。内側のループが完了すると、外側のループはTableRng範囲の次のセルに移動して同じ処理を繰り返します。結果として、Property変数には、TableRng範囲の各セルに対応する最後の一致エントリーの特性値、または一致が見つからなかった場合は「No Property」が格納されます。
For k = 1 To ElementRng.Rows.Count
            If Property = ElementRng.Cells(k, 1) Then
                ColIndex = ElementRng.Cells(k, 3).Interior.ColorIndex
                TableRng.Cells(i).Interior.ColorIndex = ColIndex
            End If
        Next k
    Next i
  • この部分のコードでは、2つのネストされたループによって、TableRng範囲の各セルに関連付けられた特性と、ElementRng範囲内の元素タイプとの照合を行います。一致が見つかった場合、ElementRng範囲から取得したカラーインデックス(ColIndex)に基づいて、TableRng範囲の該当セルが着色されます。この処理がTableRng範囲のすべてのセルに対して繰り返され、元素タイプに応じた色分けが完成します。

2.4. インタラクティブな周期表を完成させる

  • 以下のコードを「Interactive Periodic Table」ワークシートのシートモジュールに貼り付けます。
  • コードを保存します。

Excelで周期表を作成する2つの簡単な方法|数式自動化とインタラクティブ機能まで完全解説

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next
    '変数の宣言
    Dim Atom As Variant
    Dim PropertyRng As Range
    Dim WS As Worksheet
    '変数の設定
    Atom = Selection.Value
    Set PropertyRng = Sheets("Properties").Range("B5:F122")
    Set WS = ActiveSheet
    '選択されているのが1つのセルのみであることを確認
    If Selection.Cells.Count > 1 Then
        MsgBox "周期表から1つのセルだけを選択してください"
        Exit Sub
    End If
    '元素の特性を検索
    For i = 1 To PropertyRng.Rows.Count
        If Atom = PropertyRng.Cells(i, 1) Then
            WS.Range("S4") = PropertyRng.Cells(i, 2)
            WS.Range("S6") = Atom
            WS.Range("S11") = PropertyRng.Cells(i, 3)
            WS.Range("S13") = PropertyRng.Cells(i, 4)
            WS.Range("S4:S13").Interior.ColorIndex = Selection.Interior.ColorIndex
        End If
        '特性が見つからない場合
        If Atom = "" Or IsNumeric(Atom) Then
            WS.Range("S4:S13") = ""
            WS.Range("S4:S13").Interior.ColorIndex = 2
        End If
    Next i
End Sub
  • 「Interactive Periodic Table」ワークシートの周期表内のセルをクリックすると、そのセルの元素の特性が表示されます。ただし、複数のセルを選択すると警告ダイアログボックスが表示されます。

VBAコードの解説

If Selection.Cells.Count > 1 Then
        MsgBox "周期表から1つのセルだけを選択してください"
        Exit Sub
    End If
  • この部分のコードは、現在選択されているセルの数をチェックします。選択されたセルの数が1を超える場合、MsgBoxでユーザーに警告メッセージを表示し、Exit Subコマンドでサブルーチンを終了して、以降のコードが実行されないようにします。
For i = 1 To PropertyRng.Rows.Count
        If Atom = PropertyRng.Cells(i, 1) Then
            WS.Range("S4") = PropertyRng.Cells(i, 2)
            WS.Range("S6") = Atom
            WS.Range("S11") = PropertyRng.Cells(i, 3)
            WS.Range("S13") = PropertyRng.Cells(i, 4)
            WS.Range("S4:S13").Interior.ColorIndex = Selection.Interior.ColorIndex
        End If
  • この部分のコードは、PropertyRng範囲の各行を順に処理し、選択されたセルの値(Atom)と各行の1列目の値との一致を探します。一致が見つかった場合、PropertyRng範囲の一部の特性がワークシートに表示されます。具体的には、一致した行の2列目・3列目・4列目のデータがS4:S13の範囲に配置されます。さらに、S4:S13の範囲の背景色が、選択されたセルの背景色と同じになるよう設定されます。
If Atom = "" Or IsNumeric(Atom) Then
            WS.Range("S4:S13") = ""
            WS.Range("S4:S13").Interior.ColorIndex = 2
        End If
    Next i
  • 選択されたセルが空の場合、または数値が含まれている場合は、S4:S13の範囲がクリアされ、背景色が白になります。

注意点

Excelで周期表を作成する際には、以下の点に注意しましょう。

  • VLOOKUP関数の参照範囲を正しく指定するようにしてください。
  • 元素タイプごとに異なる色を使用しましょう。
  • 特性テーブル内のデータが正確であることを必ず確認してください。

よくある質問

1. 周期表における典型元素(代表元素)とは何ですか?
典型元素とは、周期表の1族2族、および13族〜18族に属する元素のことです。これらの元素は幅広い化学的性質を示し、多くの化学反応に関与します。

2. 希ガスの重要性は何ですか?
18族に属する各元素は希ガスと呼ばれます。希ガスは化学的に不活性であり、安定した電子配置を持つため、化学反応にほとんど参加しません。

3. 同位体とは何ですか?
同位体は、原子核に含まれる陽子の数は同じですが、中性子の数が異なる元素です。そのため、同じ元素のわずかに重い、または軽いバージョンと言えます。

練習用ワークブックのダウンロード

記事を読み進めながら操作を試せるよう、練習用ワークブックをダウンロードできます。

無料の高度なExcel演習問題と解答を入手しよう!

  1. Outlookエラー0x8004060cを解消!送受信できなくなったときの対処法5選

    Microsoft Outlookでエラーコード0x8004060cが表示され、Outlookクライアントからメールの送受信がまったくできなくなることがあります。原因はPSTファイルです。PSTファイルのサイズが、OfficeやOutlookが処理できる上限を超えてしまったために発生します。PSTファイルの最大容量は20GBです。同じPSTファイルを共有するメールアカウントを多数設定している場合にも、このエラーが発生しやすくなります。この記事では、送受信操作中に発生するOutlookエラー0x8004060cの解決方法を順番に解説します。 送受信操作中に発生するOutlookエラー0x8004

  2. Outlookでスペルチェックと文法チェックの設定をカスタマイズする方法

    「スペルと文法チェック」は、文章の誤りを修正するための非常に便利な機能です。Word、Excel、PowerPoint、Publisher、そしてOutlookなど、すべてのMicrosoft Officeアプリケーションで利用でき、文書内のスペルミスや不適切な表現を簡単に修正できます。 エラーが検出されたときに表示される修正候補の種類は、以下のとおりです。 スペルミスがある場合は、赤い波線で表示されます。 文法エラーがある場合は、青い二重下線で表示されます。 表現の改善が必要な場合は、紫の下線で表示されます。 Outlookでスペル・文法チェックの設定をカスタマイズする手順 1. Out