- mso
- ぬし
- 会議室デビュー日: 2003/12/04
- 投稿数: 496
- お住まい・勤務地: 宮城
|
投稿日時: 2006-02-06 14:30
msoです。
VSTOに初挑戦しているのですが、わからないことがあります。
ネットで調べたりなどしているのですが、
どうしたら良いのかわからない状態なので教えていただきたいです。
下記のソースを実行すると、表が作成されるのですが列を結合したいと思っていますがどうすれば
良いのかわかりません。
コード: |
|
Private Sub test1()
Dim rng As Word.Range = ThisDocument.Range(Start:=0, End:=0)
ThisDocument.Tables.Add(Range:=rng, NumRows:=18, NumColumns:=7)
With ThisDocument.Tables.Item(1)
With .Cell(row:=1, column:=1).Range
.Text = "test"
End With
End With
End Sub
|
VBA等でもWordの操作をしたことがないので、Wordのオブジェクトモデルから
勉強をしているのですが、どこを処理すればいいのか検討もつきません。
ヒントでも良いので何か教えていただけないでしょうか?
|
- mso
- ぬし
- 会議室デビュー日: 2003/12/04
- 投稿数: 496
- お住まい・勤務地: 宮城
|
投稿日時: 2006-02-06 15:33
コード: |
|
Private Sub test1()
Dim rng As Word.Range = ThisDocument.Range(Start:=0, End:=0)
ThisDocument.Tables.Add(Range:=rng, NumRows:=18, NumColumns:=7)
With ThisDocument.Tables.Item(1)
With .Cell(row:=1, column:=1).Range
.Text = "test"
End With
End With
'単純にひとつセルがなくなるだけ
'ThisDocument.Tables.Item(1).Cell(row:=1, column:=1).Delete()
Dim hoge As Microsoft.Office.Interop.Word.Cells
'hoge.Item
ThisDocument.Tables.Item(1).Cell(row:=1, column:=1).Merge(hoge)
End Sub
|
Margeメソッドを実行すれば出来そうというところまでは
なんとかきました。
ただ、Margeメソッドに引き渡す値がわからないのですが、
何をセットすればいいのでしょうか??
ご存知の方がいたら教えていただけないでしょうか?
|
- じゃんぬねっと
- ぬし
- 会議室デビュー日: 2004/12/22
- 投稿数: 7811
- お住まい・勤務地: 愛知県名古屋市
|
投稿日時: 2006-02-06 16:01
引用: |
|
msoさんの書き込み (2006-02-06 15:33) より:
ただ、Margeメソッドに引き渡す値がわからないのですが、
何をセットすればいいのでしょうか??
|
Excel VBA に習うと Across 引数になるので、VT_BOOL。
すなわち、True か False ですね。
# 横方向への結合サポート。
_________________ C# と VB.NET の入門サイト
じゃんぬねっと日誌
|
- mso
- ぬし
- 会議室デビュー日: 2003/12/04
- 投稿数: 496
- お住まい・勤務地: 宮城
|
投稿日時: 2006-02-06 16:28
msoです。
引用: |
|
じゃんぬねっとさんの書き込み (2006-02-06 16:01) より:
Excel VBA に習うと Across 引数になるので、VT_BOOL。
すなわち、True か False ですね。
# 横方向への結合サポート。
|
返信ありがとうございます。
コード: |
|
Private Sub test1()
Dim rng As Word.Range = ThisDocument.Range(Start:=0, End:=0)
ThisDocument.Tables.Add(Range:=rng, NumRows:=18, NumColumns:=7)
With ThisDocument.Tables.Item(1)
With .Cell(row:=1, column:=1).Range
.Text = "test"
End With
End With
'単純にひとつセルがなくなるだけ
'ThisDocument.Tables.Item(1).Cell(row:=1, column:=1).Delete()
ThisDocument.Tables.Item(1).Cell(row:=1, column:=1).Merge(True)
End Sub
|
とやったのですが、
コード: |
|
型 'Boolean' の値を 'Microsoft.Office.Interop.Word.Cell' に変換できません。
|
というエラーが出てしまいます。
現在開発している言語がVB.NETなので
Typeを使って変換をしようと思ったのですが、出来ませんでした。
|
- mso
- ぬし
- 会議室デビュー日: 2003/12/04
- 投稿数: 496
- お住まい・勤務地: 宮城
|
投稿日時: 2006-02-06 16:52
msoです。
コード: |
|
Private Sub test1()
Dim rng As Word.Range = ThisDocument.Range(Start:=0, End:=0)
ThisDocument.Tables.Add(Range:=rng, NumRows:=18, NumColumns:=7)
With ThisDocument.Tables.Item(1)
With .Cell(row:=1, column:=1).Range
.Text = "test"
End With
End With
'単純にひとつセルがなくなるだけ
'ThisDocument.Tables.Item(1).Cell(row:=1, column:=1).Delete()
'結合する。
ThisDocument.Tables.Item(1).Cell(row:=1, column:=1).Merge(ThisDocument.Tables.Item(1).Cell(row:=1, column:=2))
End Sub
|
上記のソースで結合することが出来ました。
返答していただいたじゃんぬねっとさんありがとうございました。
|
- じゃんぬねっと
- ぬし
- 会議室デビュー日: 2004/12/22
- 投稿数: 7811
- お住まい・勤務地: 愛知県名古屋市
|
投稿日時: 2006-02-06 16:58
引用: |
|
msoさんの書き込み (2006-02-06 16:28) より:
型 'Boolean' の値を 'Microsoft.Office.Interop.Word.Cell' に変換できません。
というエラーが出てしまいます。
|
あちゃー。(つД`)
このあたりは Excel VBA とは全く違うんですね。
結構似てるのが多いとはいえ、思いっきりウソついちゃいました。(;_ _)
_________________ C# と VB.NET の入門サイト
じゃんぬねっと日誌
|