Application.ChangeColumnDataType メソッド (Project)
テーブルのローカルのユーザー設定フィールド列のデータ型を変更します。
構文
式。 ChangeColumnDataType
( _Type_
, _Column_
)
式Application オブジェクトを返す式。
パラメーター
名前 | 必須 / オプション | データ型 | 説明 |
---|---|---|---|
型 | 必須 | PjFieldTypes | カスタム フィールドのデータの種類を指定します。 値には、 PjFieldTypes の定数のいずれかを指定できます。 既定値は 0 (pjCostField) です。 |
列 | 省略可能 | バリアント型 (Variant) | 列の絶対位置を指定します。 この値に 0 を指定すると、左端の列がローカルのユーザー設定フィールドの場合、その列のデータ型が変更されます。 最初の列がロックされている場合、左端の位置はロックされた列の右側の最初の列になります。 選択された列が既定値になります。 |
戻り値
ブール型 (Boolean)
注釈
ChangeColumnDataType では、ユーザー設定フィールド列を選択する必要があります。 ユーザー設定フィールドの列のデータ型を手動で変更するには、ビュー内のテーブルにユーザー設定フィールド列を追加を選択し、列見出しを右クリックし、[ データ型] をクリックします。
例
次の例を使用するには、いくつかのタスクでプロジェクトを作成し、[ガント チャート] ビューを開きます。 CreateTestTableマクロは、次の 4 つの列を持つタスク テーブルを作成します。 [ID] フィールドには、最初の列はロックされています。 2 番目の列には タスク名タイトル、3 番目の列には、 Text1 タスクのユーザー設定フィールドが含まれています、4 番目の列には、ユーザー設定の [数値 1] フィールドが含まれています。 マクロは、現在のビューにテーブルが割り当てられ、タスク ユーザー設定フィールドにテキストと数値を追加します。
CreateTestTableマクロを実行します。 最初のタスクの [テキスト 1] ユーザー設定フィールドの値は、 42 Xです。
SwitchNumberAndText マクロを実行します。 2 つのユーザー設定フィールドの見出しとデータ型が入れ替わります。
注:
最初のタスクの Text1 ユーザー設定フィールドの値は 42 X であるため、 ChangeColumnDataType がその列を Number1 ユーザー設定フィールドに変換しようとすると、Project にエラー ダイアログ ボックスが表示され、 このデータを変換するとエラーが発生します。1 つのレコードの内容が削除されます。とにかく続行しますか? 3. 変換を続行するには、エラー ダイアログ ボックスで [ はい ] をクリックします。 ユーザー設定の [数値 1] フィールドに [テキスト 1] ユーザー設定フィールドの変更、 42 Xの値が変更されたときを 0にします。
- [ガント チャート] ビューの標準のテーブルに戻すには、[ すべて選択] セル (テーブルの左上にある名前のないセル) を右クリックし、ドロップダウン リストの別のテーブルを選択します。
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 のサポートおよびフィードバックを参照してください。