メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

リンクされたデータ型 は 2018 年 6 月に Excel for Microsoft 365 で最初にリリースされたので、他の機能では識別できない場合があります。 これは、他の特徴を使用して、セルにリンクされたデータ型が含まれているかどうかを条件付きで識別する場合に特に当てはまる場合があります。 この記事では、セル内のリンクされたデータ型を識別するために使用できるいくつかの回避策について説明します。

注: リンクされたデータ型は、Worldwide Multi-Tenant クライアント (Standard テナント アカウント) でのみ Microsoft 365 できます。

数式

データ型 を 参照する数式はいつでも記述できます。 ただし、TEXT 関数を使用してリンクされたデータ型のセルのテキストを抽出する場合は、次の#VALUE。 エラーが表示されます。

回避策として 、FIELDVALUE 関数を使用し、引数に Name フィールド field_name します。 次の例では、セル A1 に株価データ型が含まれている場合、数式は株価名を返します。

=FIELDVALUE(A1,"Name")

ただし、セル A1 にリンクされたデータ型が含まれている場合、FIELDVALUE 関数はエラー #FIELD!. セルにリンクされたデータ型が含まれているかどうかを評価する場合は、次の数式を使用できます。この数式では、ISERROR 関数を使用して、FIELDVALUE 関数がエラーを返すかどうかをテストします。

=IF(ISERROR(FIELDVALUE(A2,"Name")),"このセルにはリンクされたデータ型があります","このセルにはリンクされたデータ型があります")

数式がエラーと評価された場合、"このセルにはリンクされたデータ型がない" というテキストが返されます。それ以外の場合は、"このセルにはリンクされたデータ型があります" が返されます。

単にデータを非表示にしたい場合#FIELD。 エラーが発生した場合は、次のコマンドを使用できます。

=IFERROR(FIELDVALUE(A1,"Name"),"")

エラーが発生した場合は空白セルが返されます。

条件付き書式

リンクされた データ型を 持つかどうかに基づいて、条件付きでセルの書式を設定できます。 最初に条件付き書式が必要なセルを選び、[ホーム] > [条件付き書式] >しい>を使用する...]に移動します。数式には、次のコマンドを使用します。

=NOT(ISERROR(FIELDVALUE(A1,"Name")))

ここで、セル A1 は、評価する範囲内の一番上のセルです。 次に、必要な形式を適用します。

この例では、セル A1 に "Name" の有効なフィールド名が含まれている場合、数式は TRUE を返し、書式設定が適用されます。 セル A1 にリンクされたデータ型が含まれている場合、数式は FALSE を返し、書式設定は適用されません。 有効なリンクされたデータ型を含めなかったセルを強調表示する場合は、NOT を削除できます。

VBA

複数の VBA (Visual Basic for Applications) メソッドを使用して、セルまたは範囲にリンクされたデータ型が含まれているか確認できます。 この最初の手順では 、HasRichDataType プロパティ を使用します。 

どちらの手順でも、評価するセルの範囲を選択し、結果を含むメッセージ ボックスを返すメッセージが表示されます。

Sub IsLinkedDataType()
    Dim c As Range
    Dim rng As Range
    Dim strResults As String
    
    Set rng = Application.InputBox("Select a range to check for linked data types", Type:=8)
    
    For Each c In rng
      '    Check if the HasRichDataType is TRUE or FALSE
        If c.HasRichDataType = True Then
        '   The cell holds a linked data type
            strResults = strResults & c.Text & " - Linked data type" & vbCrLf
        Else
            strResults = strResults & c.Text & " - Not a linked data type" & vbCrLf
        End If
    Next c

    MsgBox "Your range contains the following details" & vbCrLf & vbCrLf & strResults, vbInformation + vbOKOnly, "Results"
    
End Sub

この次の手順では 、LinkedDataTypeState プロパティ を使用します

Sub IsLinkedDataTypeState()
    Dim c As Range
    Dim rng As Range
    Dim strResults As String
    
    Set rng = Application.InputBox("Select a range to check for linked data types", Type:=8)
    
    For Each c In rng
   '    Check if the LinkedDataTypeState is 1 (TRUE) or 0 (FALSE)
        If c.LinkedDataTypeState = 1 Then
        '   The cell holds a linked data type
            strResults = strResults & c.Text & " - Linked data type" & vbCrLf
        Else
            strResults = strResults & c.Text & " - Not a linked data type" & vbCrLf
        End If
    Next c
    
   MsgBox "Your range contains the following details" & vbCrLf & vbCrLf & strResults, vbInformation + vbOKOnly, "Results"

End Sub

この最後のコード スニペットはユーザー定義関数 (UDF) であり、他の関数と同様にExcelします。 「=fn_IsLinkedDataType(A1)」と入力します。ここで、A1 は評価するセルです。

Public Function fn_IsLinkedDataType(c As Range)
'   Function will return TRUE if a referenced cell contains a linked data type
    If c.HasRichDataType = True Then
      fn_IsLinkedDataType = "Linked data type"
    Else
        fn_IsLinkedDataType = "Not a linked data type"
    End If
End Function

これらの例を使用するには、Alt キーを押しながらF11キーを押して Visual Basic エディター (VBE) を開き、[>モジュールの挿入] に移動し、右側に開いた新しいウィンドウにコードを貼り付けます。 Alt キーを押しながら Q キーを押して、完了Excelに戻って終了できます。 最初の 2 つの例のいずれかを実行するには、[開発 ] タブ> Code>マクロ>一覧から実行するマクロを選択し、[実行] を選択します

補足説明

Excel Tech Communityで、いつでも専門家に質問できます。また、コミュニティでは、サポートを受けられます。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×