次の方法で共有


Application.ChangeColumnDataType メソッド (Project)

テーブルのローカルのユーザー設定フィールド列のデータ型を変更します。

構文

ChangeColumnDataType( _Type_, _Column_ )

Application オブジェクトを返す式。

パラメーター

名前 必須 / オプション データ型 説明
必須 PjFieldTypes カスタム フィールドのデータの種類を指定します。 値には、 PjFieldTypes の定数のいずれかを指定できます。 既定値は 0 (pjCostField) です。
省略可能 バリアント型 (Variant) 列の絶対位置を指定します。 この値に 0 を指定すると、左端の列がローカルのユーザー設定フィールドの場合、その列のデータ型が変更されます。 最初の列がロックされている場合、左端の位置はロックされた列の右側の最初の列になります。 選択された列が既定値になります。

戻り値

ブール型 (Boolean)

注釈

ChangeColumnDataType では、ユーザー設定フィールド列を選択する必要があります。 ユーザー設定フィールドの列のデータ型を手動で変更するには、ビュー内のテーブルにユーザー設定フィールド列を追加を選択し、列見出しを右クリックし、[ データ型] をクリックします。

次の例を使用するには、いくつかのタスクでプロジェクトを作成し、[ガント チャート] ビューを開きます。 CreateTestTableマクロは、次の 4 つの列を持つタスク テーブルを作成します。 [ID] フィールドには、最初の列はロックされています。 2 番目の列には タスク名タイトル、3 番目の列には、 Text1 タスクのユーザー設定フィールドが含まれています、4 番目の列には、ユーザー設定の [数値 1] フィールドが含まれています。 マクロは、現在のビューにテーブルが割り当てられ、タスク ユーザー設定フィールドにテキストと数値を追加します。

  1. CreateTestTableマクロを実行します。 最初のタスクの [テキスト 1] ユーザー設定フィールドの値は、 42 Xです。

  2. SwitchNumberAndText マクロを実行します。 2 つのユーザー設定フィールドの見出しとデータ型が入れ替わります。

    注:

最初のタスクの Text1 ユーザー設定フィールドの値は 42 X であるため、 ChangeColumnDataType がその列を Number1 ユーザー設定フィールドに変換しようとすると、Project にエラー ダイアログ ボックスが表示され、 このデータを変換するとエラーが発生します。1 つのレコードの内容が削除されます。とにかく続行しますか? 3. 変換を続行するには、エラー ダイアログ ボックスで [ はい ] をクリックします。 ユーザー設定の [数値 1] フィールドに [テキスト 1] ユーザー設定フィールドの変更、 42 Xの値が変更されたときを 0にします。

  1. [ガント チャート] ビューの標準のテーブルに戻すには、[ すべて選択] セル (テーブルの左上にある名前のないセル) を右クリックし、ドロップダウン リストの別のテーブルを選択します。
Sub CreateTestTable() 
    Dim t As Task 
    Dim n As Integer 
 
    TableEditEx Name:="Task Test Table", TaskTable:=True, Create:=True, FieldName:="ID", _ 
        Width:=5, ShowInMenu:=True, HeaderAutoRowHeightAdjustment:=True, _ 
    ShowAddNewColumn:=False 
 
    TableEditEx Name:="Task Test Table", TaskTable:=True, NewFieldName:="Name", Title:="Task Name" 
    TableEditEx Name:="Task Test Table", TaskTable:=True, NewFieldName:="Text1" 
    TableEditEx Name:="Task Test Table", TaskTable:=True, NewFieldName:="Number1" 
    TableEditEx Name:="Task Test Table", TaskTable:=True, LockFirstColumn:=True 
 
    TableApply Name:="Task Test Table" 
 
    n = 42 

    For Each t In ActiveProject.Tasks 
        If n = 42 Then 
            t.Text1 = CStr(n) & " X" 
        Else 
            t.Text1 = CStr(n) 
        End If 
 
        t.Number1 = n 
        n = n + 2 
    Next t 
End Sub 
 
Sub SwitchNumberAndText() 
    SelectTaskColumn Column:="Number1" 
    ChangeColumnDataType Type:=pjTextField 
 
    SelectTaskColumn Column:="Text1" 
    ChangeColumnDataType Type:=pjNumberField 
End Sub

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。