質問

レッツは、私は、Microsoft Accessのフォームに埋め込まれたExcelスプレッドシートを持っていると言います。私は、オブジェクトフレームを呼び出す

ExcelFrame

私は

と呼ばれる、フォーム上のテキストボックスを追加
txtA1

私は

と呼ばれるフォームにボタンを追加
cmdInsert

私は、テキストボックスに「Hello Worldのを」入力し、ボタンをクリックしますと、それはそのスプレッドシートのA1セルに表示されています。 VBAは、私はこれを達成するために使用するのですか?

おかげ

役に立ちましたか?

解決

あなたがオブジェクトフレームを更新し、ワークシートに自分の価値を書き、Excelを自動化することができます。

Private Sub cmdInsert_Click()
    Dim strPath As String
    Dim oExcel As Object
    Dim oSheet As Object

    Set oExcel = CreateObject("Excel.Application")
    oExcel.Visible = True

    strPath = Me.ExcelFrame.SourceDoc
    'Debug.Print strPath '
    oExcel.Workbooks.Open strPath
    Set oSheet = oExcel.ActiveSheet
    'Debug.Print oSheet.Name '

    oSheet.Range("A1").Value = Me.txtA1
    oExcel.ActiveWorkbook.Save
    oExcel.Quit
    Set oSheet = Nothing
    Set oExcel = Nothing
    'acOLEUpdate action requires Enabled = True '
    'and Locked = False '
    Me.ExcelFrame.Enabled = True
    Me.ExcelFrame.Locked = False
    Me.ExcelFrame.Action = acOLEUpdate
    Me.txtA1.SetFocus
    Me.ExcelFrame.Enabled = False
    Me.ExcelFrame.Locked = True
End Sub

編集:例では、外部ブックファイルに基づいていたの連結のフォームのオブジェクトフレームのソースとして。

はファイルからの作成」のラジオボタンを選択し、ワークシートをリンクするには、「のリンクの」チェックボックス、およびワークブックを選択するための参照を確認してください。それは私がアクセス2007としてIリコールとそれをやった方法です、それはアクセス2003

と類似していました

他のヒント

それは右、遅すぎることはありませんか?

あなたはすでに(OPのように)Excelオブジェクトを作成したことを提供します:

Dim wb As Excel.Workbook, ws As Excel.Worksheet
Set wb = Me.ExcelFrame.Object
Set ws = wb.Worksheets(1)
ws.range("a1")= "Hello world"

このコードは、VBAにMS Excelへの参照が必要であることに注意してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top