Word (VBA)

Word VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Word 2010)
ワードのデータをエクセルブックに書き込み保存する
投稿日時: 18/03/18 12:39:22
投稿者: はるき

ワードで作成したユーザフォームのコンボボックスリストデータをエクセルブックに保存したいのですが、ワードからエクセルを起動して、指定のブックを開くとき「読み取り専用」となってしまいます。
書き込みできるファイルの開き方を教えていただけないでしょうか?
よろしくお願いいたします。
 
以下、ワードに記載しているマクロです。
 
 
Private Sub 保存終了_Click()
  Dim Listdata, n, i, Listdata
    FD = ActiveDocument.Path
    ExcelFile = FD & "\Word情報.xlsx"
    Listdata = menu.ラベルメニュー.List
    n = UBound(Listdata) - LBound(Listdata) + 1
  With CreateObject("Excel.Application")
    .Visible = True
    With .Workbooks.Open(ExcelFile)
       .WorkSheets("DATA").Range("A2:A100").Value = Empty
      For i = 0 To n - 1
       .WorkSheets("DATA").Range("A" & i + 2).Value = Listdata(i, 0)
      Next i
    End With
    Application.DisplayAlerts = False
' .Workbooks(ExcelFile).Save ←読み取り専用で開いているため保存できない
' .Workbooks(ExcelFile).Close
    Application.DisplayAlerts = True
  .Quit
  End With
End Sub

回答
投稿日時: 18/03/18 13:37:06
投稿者: んなっと

まずは
 
  With CreateObject("Excel.Application")
    .Visible = True
    With .Workbooks.Open(ExcelFile)
      .WorkSheets("DATA").Range("A2:A100").ClearContents
      For i = 0 To n - 1
        .WorkSheets("DATA").Range("A" & i + 2).Value = Listdata(i, 0)
      Next i
      .Save
      .Close
    End With
    .Quit
  End With

投稿日時: 18/03/18 13:42:44
投稿者: はるき

んなっと さん ありがとうございます。.saveの書式がまずかったようです。
無事、保存できるようになりました。ありがとうございます。
' .Workbooks(ExcelFile).Save ←読み取り専用で開いているため保存できない
      ↑ ここの指定がまずかったみたいですね。
 

んなっと さんの引用:
まずは
 
  With CreateObject("Excel.Application")
    .Visible = True
    With .Workbooks.Open(ExcelFile)
      .WorkSheets("DATA").Range("A2:A100").ClearContents
      For i = 0 To n - 1
        .WorkSheets("DATA").Range("A" & i + 2).Value = Listdata(i, 0)
      Next i
     .Save
      .Close
    End With
    .Quit
  End With