- ベストアンサー
アクセスvbaでフリガナを取得したいのですが
Sub tset() MsgBox Application.GetPhonetic("東京") End Sub だとエラーになってしまいます。 エクセルでは問題なく使えます。 どうやら、 GetPhoneticは、エクセルのみで使用できるメソッドのようです。 なのでググってみたら https://foolexp.wordpress.com/2012/07/14/p2wpsu-4l/ がヒットしたのですが、 作者には申し訳ないのですが、 もうちょっとスマートなコードはないのでしょうか? エクセルオブジェクトを作ってやる方法があると思うのですが コードがわかりません。
- みんなの回答 (3)
- 専門家の回答
関連するQ&A
- UserNameを取得したい
エクセル(2003)で Sub test() MsgBox Application.UserName End Sub と同じような意味をアクセスでも行いたいのですが どうゆうコードを書けばいいのでしょうか? 同じコードを貼り付けてみましたがだめでした。 なぜ同じオフィスなのにだめなのでしょう? アドバイスをお願い致します。
- ベストアンサー
- オフィス系ソフト
- アクセス 自身のデータベース名を取得するのは「CurrentDatabase」ではない?
Sub test() MsgBox CurrentDatabase End Sub を実行すると 「変数が定義されていません。」となってしまいます。 エクセルで言う MsgBox ActiveWorkbook.Name を行ないたいのですがどんなコードを書けばいいのでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Accessからoutlookのプロシージャー
Accessからoutlookのプロシージャーを実行する方法は? AccessからExcelなら、エクセルに ************************ Sub エクセルマクロ() MsgBox "a" End Sub ************************ を作り、アクセス側で、 ************************ Private Sub AccessからExcel() Dim xlsWB As Object Set xlsWB = GetObject("D:\My Documents\up\エクセル.xls") xlsWB.Application.Run xlsWB.Name & "!エクセルマクロ" Set xlsWB = Nothing End Sub ************************ を実行すると、エクセル側のプロシージャーが実行されますが、 Accessからoutlookの場合は、どうすればいいでしょうか? Outlookの標準モジュールに、 ************************ Sub Outlookマクロ() MsgBox "a" End Sub を作っても、 アクセス側で、 Private Sub AccessからExcel() Dim xlsWB As Object Set xlsWB = GetObject("D:\My Documents\up\ ")‘ここをどうすればいいかわからない。 xlsWB.Application.Run xlsWB.Name & "! Outlookマクロ" Set xlsWB = Nothing End Sub ************************ と言うコードしか作れなくて、詰んでしまいます。 Accessからoutlookのプロシージャーを実行する方法をご教授ください。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Access2000のVBAについて
下記のプログラムだと挿入が可能になります。 Private Sub 削除_コマンド_Click() If IsNull(Me.社員コード) Then MsgBox ("社員コードが入力されていません") Else Dim strSQL As String strSQL = "INSERT INTO 社員情報テーブル(社員コード,作成日) " _ & " VALUES ('" & Me.社員コード & "', now());" DoCmd.RunSQL strSQL End If End Sub しかし、下記のプログラムだとinsert文の『Me.社員コード』で エラーが発生します。 エラーメッセージは 『メソッドまたはデータメンバが見つかりません』 と表示されます。 上と下とどう違うのでしょうか。 Private Sub 削除_コマンド_Click() If IsNull(Me.社員コード) Then MsgBox ("社員コードが入力されていません") Else Dim strSQL As String strSQL = "INSERT INTO 社員情報テーブル(社員コード,氏名(氏),作成日) " _ & " VALUES ('" & Me.社員コード & "','" & Me.氏名(氏) & "', now());" DoCmd.RunSQL strSQL End If End Sub
- ベストアンサー
- その他(データベース)
- (VBA)フィルタがかかっているかどうかの判断方法
フィルタがかかっているかどうかを取得したいのですが フィルタがかかっているシートにて Sub test1() If ActiveSheet.FilterMode Then MsgBox "フィルタがかかってます" End If End Sub Sub test1の1() If ActiveSheet.FilterMode = True Then MsgBox "フィルタがかかってます" End If End Sub を実行しても"フィルタがかかってます"は表示されません。 Sub test2() If Rows(1).FilterMode Then MsgBox "フィルタがかかってます" End If End Sub Sub test3() If ActiveSheet.Rows(1).FilterMode Then MsgBox "フィルタがかかってます" End If End Sub こちらは オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438) になってしまいます。 フィルタがかかっているか調べる方法はありますか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBAのOnTimeの停止について
下記コードで右上の×ボタン(エクセルアプリではなくbookを閉じる×です)でCLOSEした場合は停止されるのですが、 ThisWorkbook.Closeで閉じた場合MsgBox "timer cxl"は呼ばれるのですがタイマーがキャンセルできず10秒後に閉じたbookが勝手に開かれMsgBox "chk"が呼ばれてしまいます。 エクセルは2003、WIN10です。 どなたか何か原因や回避策があればご教授お願い致します。 //標準モジュール Public timer As Date Public timerFlag As Boolean Sub chk() timerFlag = False MsgBox "chk" End Sub //ThisWorkbook Private Sub Workbook_Open() timer = Now + TimeValue("00:00:10") timerFlag = True Application.OnTime timer, "chk" MsgBox "open" End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) If timerFlag Then Application.OnTime timer, "chk", , False MsgBox "timer cxl" End If MsgBox "close" End Sub
- 締切済み
- Visual Basic
- アクセスから現在開いているエクセルの値を取得したい
アクセスから現在開いているエクセル(BOOK1.xls)のシート1のA1に入っている値を取得するにはどうすればいいでしょうか? アクセスの参照設定の「Exsel 11.0 object Library」 にチェックを入れ Sub Test() Dim ExcelSheet As Object Set ExcelSheet = CreateObject("Excel.Sheet") ExcelSheet.Application.Visible = True MsgBox ExcelSheet.Application.Cells(1, 1).Value Set ExcelSheet = Nothing End Sub とやってみたのですが 新たなエクセルブックが表示され、空白のセルのA1が取得されてしまいます。 「現在開いているBOOK1のシート1」とするにはどうすればいいのでしょうか? ご教授よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excel2007VBAファイルの表示について
●質問の主旨 開いたダイアロボックス内のファイルについてエクセルファイル(.xlsxのみ)を 対象としたいと考えています。 下記コードをどのように書き換えればよいでしょうか? ご存知の方ご教示願います。私はVBA初心者です ●質問の補足 作成した下記のコードでは 「実行時エラー1004:GetOpenFilenameメソッドに失敗しました」 と表示されます。 参考書2冊読んで全くその通りに引用していて、なぜエラー表示に なるのかよく分かりません。 またTarget = Application.GetOpenFilename("Excelブック,*,xlsx")を Target = Application.GetOpenFilename()にするとダイアロボックスは 表示され、その中にあるエクセルファイルは表示されます。 ●コード Sub Sample3() Dim Target As String Target = Application.GetOpenFilename("Excelブック,*,xlsx") If Target <> "False" Then Workbooks.Open Target Else MsgBox "キャンセルされました" End If End Sub
- ベストアンサー
- Visual Basic
- Functionとsub どちらを使った方がいいで
Functionとsub どちらを使った方がいいですか? VBA初心者です。 ------------------------ Sub test1() MsgBox "testです" End Sub Function test2() MsgBox "testです" End Function ------------------------ どちらのコードも結果は同じです。 基本的に、マクロを組む時は、Functionとsubとどちらを使った方が良いのでしょうか? ------------------------ Sub tset3() MsgBox test4 End Sub Function test4() test4 = "testです" End Function ------------------------ のように戻り値・返り値がある場合のみFunctionを使うべきなのでしょうか? ご回答よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- [Q:VBA] 現在のオブジェクトの参照(JavaScriptのthisキーワードに相当するもの)
こんにちは。 Excel VBAで現在のオブジェクトの参照をすることはできますでしょうか?(JavaScriptのthisキーワードに相当するものはあるのでしょうか?) 下記のようなことをしたいのですが(コード自体に意味はありません。検証用です)。 よろしくお願い致します。 -- Private Sub CommandButton1_Click() キャプション = CommandButton1.Caption MsgBox(キャプション) End Sub Private Sub CommandButton2_Click() キャプション = CommandButton2.Caption MsgBox(キャプション) End Sub ・・・×数十個 ↓↓↓ Private Sub CommandButton1_Click() funcCaption End Sub Private Sub CommandButton2_Click() funcCaption End Sub ・・・×数十個 Sub funcCaption() キャプション = this.Caption MsgBox(キャプション) End Sub
- ベストアンサー
- Visual Basic
お礼
ご回答ありがとうございました。