Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


389 / 2272 ツリー ←次へ | 前へ→

【11904】Excelファイルのオートシェイプ上のテキストの値を取得したい さつき 11/1/10(月) 17:35 質問[未読]
【11907】Re:Excelファイルのオートシェイプ上のテキ... 11/1/14(金) 12:52 回答[未読]
【11908】Re:Excelファイルのオートシェイプ上のテキ... さつき 11/1/14(金) 21:54 質問[未読]
【11909】Re:Excelファイルのオートシェイプ上のテキ... さつき 11/1/15(土) 1:56 質問[未読]
【11910】Re:Excelファイルのオートシェイプ上のテキ... 11/1/15(土) 10:30 回答[未読]
【11911】Re:Excelファイルのオートシェイプ上のテキ... さつき 11/1/15(土) 13:03 お礼[未読]
【11914】Re:Excelファイルのオートシェイプ上のテキ... 小僧 11/1/17(月) 9:21 発言[未読]
【11918】Re:Excelファイルのオートシェイプ上のテキ... さつき 11/1/17(月) 22:55 お礼[未読]

【11904】Excelファイルのオートシェイプ上のテキ...
質問  さつき  - 11/1/10(月) 17:35 -

引用なし
パスワード
   こんにちは、さつきと申します。
こちらのトピック番号2135
でExcelファイルのオートシェイプ上のテキストの値を取得する方法が載っていたので、下記のようにして動かしてみましたが、「ユーザー定義型は定義されていません」というエラーがでます。他にもあちこち探して見ましたが、わかりません。
どなたかご教授お願いいたします。accessのバージョンは2003です。

Private Sub コマンド15_Click()

Dim Obj_Shape    As Variant
Dim FileName    As String
Dim wk_Applicant  As String
Dim wk_ApplicantDay As Date

' ファイル名取得
FileName = "C:\Documents and Settings\My Documents\Test.xls"

' Excel起動
Set objExcel = CreateObject("Excel.Application")
' ファイルオープン
objExcel.Workbooks.Open FileName:=FileName

With objExcel
  For Each Obj_Shape In .Workbooks("Test.xls").Worksheets(1).Shape
    If Obj_Shape.Name = "テキスト 1" Then
      wk_Applicant = Obj_Shape.TextFrame.Characters.Text
    ElseIf Obj_Shape.Name = "テキスト 2" Then
      wk_ApplicantDay = Obj_Shape.TextFrame.Characters.Text
    End If
  Next

   Excel終了
  .Quit
End With

End Sub

【11907】Re:Excelファイルのオートシェイプ上のテ...
回答    - 11/1/14(金) 12:52 -

引用なし
パスワード
   雅です。

どこでエラーが出るか書くといいかも?

>objExcel.Workbooks.Open FileName:=FileName
ちなみに、ここな気がするけど。

【11908】Re:Excelファイルのオートシェイプ上のテ...
質問  さつき  - 11/1/14(金) 21:54 -

引用なし
パスワード
   雅さん、レスありがとうございます。
あきらめて、別の切り口で質問し直そうと思っておりました。
というのは、オートシェイプに関わらず、
エクセルのファイルを開くだけのコードに置き換えて見ても
同じエラーが出ます。
>>objExcel.Workbooks.Open FileName:=FileName
>ちなみに、ここな気がするけど。
問題がある部分は、雅さんのご指摘の通りのような気がしています。

>どこでエラーが出るか書くといいかも?
申し訳ありません、正確に書くべきでした。
エラーは、クリック時にでます。「イベントプロパティに指定した式クリック時でエラーが発生しました。ユーザー定義型は定義されていません。」
と表示されます。

参照設定などについても調べてみましたが、わかりませんでした。
バージョンの問題でしょうか?
どうぞ、引き続きご教授お願いいたします。

【11909】Re:Excelファイルのオートシェイプ上のテ...
質問  さつき  - 11/1/15(土) 1:56 -

引用なし
パスワード
   雅さん、再びご質問です。

>>objExcel.Workbooks.Open FileName:=FileName
>ちなみに、ここな気がするけど。
上記のご指摘を参考に、「Workbooks.Open FileName」
で検索して調べているうちに気がついたのですが、
以前、そのaccessファイルは、データベース変換で
access2002-2003ファイル形式の変換を行なっていました。
新しいファイルを作成して、同じコードを貼り付けたら、
「イベントプロパティに指定した式クリック時でエラーが発生しました。
ユーザー定義型は定義されていません。」
というエラーは出なくなりました。
ところが今度は、下記の行で、
「オブジェクトはこのプロパティまたはメソッドをサポートしていません」
と出ます。
For Each Obj_Shape In .Workbooks("Test.xls").Worksheets(1).Shape
excelの参照設定をしてみたり、
Dim Obj_Shape As Object に変更してもだめでした。
どう直したらいいでしょうか?
ご教示お願いいたします。

【11910】Re:Excelファイルのオートシェイプ上のテ...
回答    - 11/1/15(土) 10:30 -

引用なし
パスワード
   雅です。

試してないんで確証はないですがたぶんOpenのほうは
「FileName:=FileName」の「FileName:=」が悪さをしていると思います。

>For Each Obj_Shape In .Workbooks("Test.xls").Worksheets(1).Shape
>excelの参照設定をしてみたり、

こっちはShapeではなくコレクションを列挙しようとしているのでShapesかと
思われます。

【11911】Re:Excelファイルのオートシェイプ上のテ...
お礼  さつき  - 11/1/15(土) 13:03 -

引用なし
パスワード
   雅さん、ご回答ありがとうございます。

>こっちはShapeではなくコレクションを列挙しようとしているのでShapesかと
>思われます。
Shapesに直しましたら、無事動作しました。ありがとうございました。

>試してないんで確証はないですがたぶんOpenのほうは
>「FileName:=FileName」の「FileName:=」が悪さをしていると思います。
ネットで「FileName:=」を使わない下記のような例題があったので貼り付けて実行してみましたが、やはり同じエラーがでました。ファイル形式の変換が悪さしているようです。

Dim WSH As Object
Dim sDesktop As String
Set WSH = CreateObject("WScript.Shell")
' // Desktop のパスを取得する
sDesktop = WSH.SpecialFolders("Desktop")
 MsgBox sDesktop
' // Desktop 上の Book1.xls を開く
WSH.Run Chr(34) & sDesktop & "\Book1.xls" & Chr(34)
Set WSH = Nothing

【11914】Re:Excelファイルのオートシェイプ上のテ...
発言  小僧  - 11/1/17(月) 9:21 -

引用なし
パスワード
   ▼さつき さん、雅さん:
こんにちは。

> イベントプロパティに指定した式クリック時でエラーが発生しました。
> ユーザー定義型は定義されていません。

こちらのエラーが出ると同時に
問題のある箇所が反転されると思われますが、
11904 でご提示されたコードのどちらが反転しておりますでしょうか。

もしご提示されていない箇所が反転しておりましたら
ご提示して頂けると解決するかもしれませんね。

【11918】Re:Excelファイルのオートシェイプ上のテ...
お礼  さつき  - 11/1/17(月) 22:55 -

引用なし
パスワード
   小僧 さん、こちらにもレスをつけて頂き、ありがとうございます。

>こちらのエラーが出ると同時に
>問題のある箇所が反転されると思われますが、
>11904 でご提示されたコードのどちらが反転しておりますでしょうか。
エラーが出るときは、
イベントプロパティに指定した式クリック時でエラーが発生しました。
ユーザー定義型は定義されていません。
というエラー表示の下に
マクロ名、ユーザー定義関数名、[イベントプロシージャ]以外の式が
指定されています。関数、イベント、マクロの評価でエラーが発生しました。
と書かれており、ヘルプの表示というボタンがでます。
コードの画面には、戻らないので、反転表示もしていない(フォーム表示のまま)
状態です。

389 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078191
(SS)C-BOARD v3.8 is Free