VBAを使った質問ならなんでもござれ
本来の対象であるオフィスアプリを操作する以外の話もOK
ゲーム作り、Webアクセス、外部アプリの操作
COM(ActiveX)、Win32API、.NET Framework、DirectXなどなど
VBAで実行するものであればなんでも質問してください
VBAを開発環境としていろいろ作っちゃいましょう
前スレ
VBAなんでも質問スレ
http://peace.2ch.net/test/read.cgi/tech/1342087380/
関連スレ
Excel VBA 質問スレ Part36 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/tech/1419718732/
Access VBA 質問スレ Part1
http://peace.2ch.net/test/read.cgi/tech/1328536426/
VBプログラマ質問スレ(Ver.6.0 まで) part64
http://peace.2ch.net/test/read.cgi/tech/1393069842/
Excel総合相談所 118 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/bsoft/1430352555/
探検
VBAなんでも質問スレ Part2 [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2015/05/21(木) 10:52:44.71ID:KLv0vQmm561デフォルトの名無しさん
2018/05/30(水) 16:34:41.89ID:C5TotkC4 VBAってリボンにメニューを作成出来る?
562デフォルトの名無しさん
2018/05/31(木) 12:50:35.76ID:TWLhtyG5 できるよ
563デフォルトの名無しさん
2018/05/31(木) 22:00:54.69ID:mTNxmz5w 出来ないだろ
564デフォルトの名無しさん
2018/05/31(木) 22:10:43.12ID:tlOTml64 シートにボタンがいくつかあって、押したときの処理が結構複雑なんです
とりあえずclickedをシートモジュールに書いて、そこから呼び出される関数も全部シートモジュールに書いたら分量がすごいことになりました
やっぱりクリック検出だけにしぼって残りは全部標準モジュールにすべきなんですかね。そのシートでしか呼び出されないわけで分けるのも分かりにくいような気もして
とりあえずclickedをシートモジュールに書いて、そこから呼び出される関数も全部シートモジュールに書いたら分量がすごいことになりました
やっぱりクリック検出だけにしぼって残りは全部標準モジュールにすべきなんですかね。そのシートでしか呼び出されないわけで分けるのも分かりにくいような気もして
565デフォルトの名無しさん
2018/05/31(木) 23:13:50.53ID:eZ3BghFT >>563
Excel2003までのツールバーにメニュー追加するコードを書くと2007以降ではリボンにメニューが追加されるけど違う話かな?
Excel2003までのツールバーにメニュー追加するコードを書くと2007以降ではリボンにメニューが追加されるけど違う話かな?
566デフォルトの名無しさん
2018/07/02(月) 19:23:11.48ID:kZ0RH16R Access2016でコンボボックスの規定値をnullから1へ変更したくて
フォーム!コンボボックス.DefaultValue = """1"""とするフォーム上は1と表示されるんだが、プロパティーシート上は全く変化なくて、フォームをとじてから開くと規定値が変わっていなくてNullのまま。
VBAからは既定値の変更が出来ないのかな?
フォーム!コンボボックス.DefaultValue = """1"""とするフォーム上は1と表示されるんだが、プロパティーシート上は全く変化なくて、フォームをとじてから開くと規定値が変わっていなくてNullのまま。
VBAからは既定値の変更が出来ないのかな?
567デフォルトの名無しさん
2018/07/04(水) 18:36:07.99ID:uOrTSuCX フォームを閉じるときに変更を保存しなけりゃ普通に考えてもとに戻るわけだが
568デフォルトの名無しさん
2018/07/04(水) 19:06:38.06ID:SBPTcvBw >>567
仰るとおりでした
仰るとおりでした
569デフォルトの名無しさん
2018/07/04(水) 22:40:17.29ID:gFgZc5FG 5OK
570デフォルトの名無しさん
2018/07/06(金) 12:23:43.73ID:uTPDH9XV 5OK
571デフォルトの名無しさん
2018/07/26(木) 23:25:17.04ID:10W3NzaF ここはjscriptはアカンけ?outlookをjsで弄りたいんだが
572デフォルトの名無しさん
2018/07/27(金) 11:07:24.57ID:zSlylfXh Jscriptなら近いのはVBSじゃないか?
573デフォルトの名無しさん
2018/07/27(金) 11:15:30.85ID:OAh4kN9K HTAとか
574デフォルトの名無しさん
2018/08/01(水) 19:27:32.96ID:sloNm1e3 Wordで読みとり専用推奨で保存されてるファイルをVBAで書き込み可で開いて編集して上書き保存したいんですが、やる方法はありますか?
575デフォルトの名無しさん
2018/08/01(水) 22:01:52.24ID:oaZVWoyy 読み取り専用推奨なんて属性ビットがあるのか?
576デフォルトの名無しさん
2018/08/01(水) 22:05:26.28ID:oaZVWoyy マジだったカオスと思ったが
開くと読み取り専用か聞いてくるのか
まあ、OS側でなくワード側で制御してそうだから、回避は厳しそうな気がする
開くと読み取り専用か聞いてくるのか
まあ、OS側でなくワード側で制御してそうだから、回避は厳しそうな気がする
577デフォルトの名無しさん
2018/08/01(水) 22:15:26.91ID:HUVD91D/ カオス言いたい年頃なのでどうか大目に見てやって下さい
578デフォルトの名無しさん
2018/08/01(水) 22:18:30.88ID:NozJFPGH カオスは天地が分かれる前の状態 あるいは光と闇が分かれる前の状態
579デフォルトの名無しさん
2018/08/01(水) 22:21:17.59ID:6UiRsc0v カオスエンジェルで抜いた
580デフォルトの名無しさん
2018/08/02(木) 00:14:28.59ID:isxfR7GW >>576
VBAを使わずにファイルを開いてダイアログのウィンドウをつかまえて「いいえ」ボタンにメッセージを送るという力技ぐらいしか方法はないんでしょうか?
Excelでは開くときにIgnoreReadOnlyRecommenedというのを指定すれば良さそうなんですが
VBAを使わずにファイルを開いてダイアログのウィンドウをつかまえて「いいえ」ボタンにメッセージを送るという力技ぐらいしか方法はないんでしょうか?
Excelでは開くときにIgnoreReadOnlyRecommenedというのを指定すれば良さそうなんですが
581デフォルトの名無しさん
2018/08/02(木) 01:48:50.77ID:I4e8JJGh document.openメソッドにも引数readonly があるみたいだけど
582デフォルトの名無しさん
2018/08/02(木) 08:52:11.65ID:L3mOQQ2h >>581
ReadOnlyにFalseを渡しても読みとり専用で開かれるのは確認済みです
ReadOnlyにFalseを渡しても読みとり専用で開かれるのは確認済みです
583デフォルトの名無しさん
2018/08/02(木) 12:49:47.07ID:rM6odxjs584デフォルトの名無しさん
2018/08/02(木) 18:55:35.87ID:kRv3+o5C585デフォルトの名無しさん
2018/08/02(木) 19:38:51.82ID:CFW8XzdE >>582
すくなくともうちの環境では、ReadOnly:=Falseで書き込み可能で開いてるけど?
その状態からReadOnlyRecommended = Falseにして保存したら、読み取り専用推奨は外れてるが
まあうちの環境がかなり古いから最近では出来ない可能性もあるが
それホントに推奨なだけなのか?
すくなくともうちの環境では、ReadOnly:=Falseで書き込み可能で開いてるけど?
その状態からReadOnlyRecommended = Falseにして保存したら、読み取り専用推奨は外れてるが
まあうちの環境がかなり古いから最近では出来ない可能性もあるが
それホントに推奨なだけなのか?
586デフォルトの名無しさん
2018/08/02(木) 20:14:42.01ID:L3mOQQ2h >>585
試した環境はWord2010ですがここに書いてある通りです。できません。
https://support.microsoft.com/en-us/help/275976/word-document-opens-as-read-only-when-you-try-to-programmatically-open
試した環境はWord2010ですがここに書いてある通りです。できません。
https://support.microsoft.com/en-us/help/275976/word-document-opens-as-read-only-when-you-try-to-programmatically-open
587デフォルトの名無しさん
2018/08/02(木) 21:07:22.34ID:CFW8XzdE >>586
じゃあ2010から出来なくなったんだな
うちの2007ではできてるから
ただそこの文書
Note The following example applies to Word 2003 and 2002:
とか書いてあるな
Last Updated: Apr 19, 2018
らしいけど、適用対象バージョンがよくわからんな
じゃあ2010から出来なくなったんだな
うちの2007ではできてるから
ただそこの文書
Note The following example applies to Word 2003 and 2002:
とか書いてあるな
Last Updated: Apr 19, 2018
らしいけど、適用対象バージョンがよくわからんな
588デフォルトの名無しさん
2018/08/08(水) 01:24:38.39ID:vu1bVHsA ACCESSでオートルックアップクエリを使用したフォームでマスタにないものを入力した際、
フィールドとキーが一致しているレコードをテーブルで探すことができません。
と出ますが、マスタにないデータを入力しようとしたとき、上のメッセージを出すことなく、マスタ登録用フォームを呼び出すにはどうすればよいでしょうか?教えていただけると助かります。
フィールドとキーが一致しているレコードをテーブルで探すことができません。
と出ますが、マスタにないデータを入力しようとしたとき、上のメッセージを出すことなく、マスタ登録用フォームを呼び出すにはどうすればよいでしょうか?教えていただけると助かります。
589デフォルトの名無しさん
2018/08/22(水) 19:57:58.33ID:I61xiysx スパークラインをVBAで挿入したいんだけど範囲指定のところがうまくいきません。
わかる方いたら教えてください。よろしくお願いします。
call cells(10 , h ).SparklineGroups.Add(xlSparkLine, "n5: n100")
"n5: n100" のところなのですが、
range(worksheets(h).cells(14,5) , worksheets(h).cells(14 , G ))
のようにして ワークシートごとの数値群をスパークラインにしていきたいのですが、、、
何か良い方法を教えてください。
よろしくお願いします。
わかる方いたら教えてください。よろしくお願いします。
call cells(10 , h ).SparklineGroups.Add(xlSparkLine, "n5: n100")
"n5: n100" のところなのですが、
range(worksheets(h).cells(14,5) , worksheets(h).cells(14 , G ))
のようにして ワークシートごとの数値群をスパークラインにしていきたいのですが、、、
何か良い方法を教えてください。
よろしくお願いします。
590デフォルトの名無しさん
2018/09/02(日) 12:36:29.88ID:/2qGDDvp 質問
Outlook2010なのですが
受信トレイの検索(Ctrl+E)で「請求書」を検索するのと同じ動作を
VBAにしたいのですがどのように記述すればいいのでしょうか
ボタンに登録して使うつもりです。
OutlookVBAを使うのは初めてでしてお手引きをお願いいたします
Outlook2010なのですが
受信トレイの検索(Ctrl+E)で「請求書」を検索するのと同じ動作を
VBAにしたいのですがどのように記述すればいいのでしょうか
ボタンに登録して使うつもりです。
OutlookVBAを使うのは初めてでしてお手引きをお願いいたします
591デフォルトの名無しさん
2018/09/02(日) 16:03:58.04ID:v7+8Ol2A VBAで質問です
【前提】
・デスクトップにフォルダA
・フォルダAの中に9月1日分のExcelファイル"0901"とマクロ作動用の.xlsmファイル
【したいこと】
・フォルダAの中に9月2日分のフォルダ"0902"を作成
・"0901"を開き、B2セルの2018/9/1を2018/9/2に書き換え
・フォルダ"0902"内にファイル名を"0902"にして保存
日毎のレポートのひな形を作ろうとしています
あまり知らないながら書いてるのですがエラー出まくりで泣きそうです
【前提】
・デスクトップにフォルダA
・フォルダAの中に9月1日分のExcelファイル"0901"とマクロ作動用の.xlsmファイル
【したいこと】
・フォルダAの中に9月2日分のフォルダ"0902"を作成
・"0901"を開き、B2セルの2018/9/1を2018/9/2に書き換え
・フォルダ"0902"内にファイル名を"0902"にして保存
日毎のレポートのひな形を作ろうとしています
あまり知らないながら書いてるのですがエラー出まくりで泣きそうです
592デフォルトの名無しさん
2018/09/02(日) 16:16:35.28ID:7fXcCHFS >>590
Application.Searchメソッド、もしくは
Application.Session.GetDefaultFolder(olFolderInbox).GetTable(DASLクエリの引数) を使えば良いのでは
Application.Searchメソッド、もしくは
Application.Session.GetDefaultFolder(olFolderInbox).GetTable(DASLクエリの引数) を使えば良いのでは
593デフォルトの名無しさん
2018/09/02(日) 16:51:32.22ID:Q0JGCJ3q >>591
悪いこと言わないから、手でやるか詳しい人に頼みなさい
複数のブックが同時に開かれている状態でのVBA処理には
いろいろ面倒なところがあり、経験が必要
5ちゃんでサクっと説明できるものではない
しかもフォルダ処理も伴っているので、エラー処理を含め
きっちり作ろうとするとけっこうな規模のアプリになってしまうと思う
悪いこと言わないから、手でやるか詳しい人に頼みなさい
複数のブックが同時に開かれている状態でのVBA処理には
いろいろ面倒なところがあり、経験が必要
5ちゃんでサクっと説明できるものではない
しかもフォルダ処理も伴っているので、エラー処理を含め
きっちり作ろうとするとけっこうな規模のアプリになってしまうと思う
594デフォルトの名無しさん
2018/09/02(日) 17:27:55.14ID:1l6OdzeH >>591
thisworkbook.path\フォルダA\0901を開いてあとはブック名から指定して必要事項を書き換え。
ブック名を指定してsaveAsで
thisworkbook.path\フォルダA\0902で保存。
蛇足だが、必要無くともブックもシートも常に指定した方が良い。
thisworkbook.path\フォルダA\0901を開いてあとはブック名から指定して必要事項を書き換え。
ブック名を指定してsaveAsで
thisworkbook.path\フォルダA\0902で保存。
蛇足だが、必要無くともブックもシートも常に指定した方が良い。
595デフォルトの名無しさん
2018/09/02(日) 17:44:00.59ID:GR8jnF/5596デフォルトの名無しさん
2018/09/02(日) 18:16:50.42ID:dkuRxOF+ おそらくやりたいことはこんな感じだろう。
0901ファイルを開いた状態で、9月2日当日にレポートを作成する前提。
0901ファイルを修正するという話だったからその通りにしたけど、本当ならここはテンプレートファイルから書き起こすようにするべきだと思う。
テスト実行してないので、エラーが出たらごめんなさい。
Sub CreateDailyReport
Dim Report As Workbook
Set Report = Application.Workbooks("0901")
'テンプレートから新規ファイルを作成するなら以下のように変える
'Set Report = Application.Workbooks.Open(テンプレートのパス)
Report.Worksheets("Sheet1").Range("B2").Value = Format(Date, "yyyy/mm/dd")
Dim PathString As String
PathString = Thisworkbook.Path & "¥" & Format(Date, "mmdd")
If Dir(PathString, vbDirectory) = "" Then MkDir PathString
Report.SaveAs PathString & "¥" & Format(Date, "mmdd") & ".xlsx"
Report.Close
End Sub
0901ファイルを開いた状態で、9月2日当日にレポートを作成する前提。
0901ファイルを修正するという話だったからその通りにしたけど、本当ならここはテンプレートファイルから書き起こすようにするべきだと思う。
テスト実行してないので、エラーが出たらごめんなさい。
Sub CreateDailyReport
Dim Report As Workbook
Set Report = Application.Workbooks("0901")
'テンプレートから新規ファイルを作成するなら以下のように変える
'Set Report = Application.Workbooks.Open(テンプレートのパス)
Report.Worksheets("Sheet1").Range("B2").Value = Format(Date, "yyyy/mm/dd")
Dim PathString As String
PathString = Thisworkbook.Path & "¥" & Format(Date, "mmdd")
If Dir(PathString, vbDirectory) = "" Then MkDir PathString
Report.SaveAs PathString & "¥" & Format(Date, "mmdd") & ".xlsx"
Report.Close
End Sub
597デフォルトの名無しさん
2018/09/02(日) 18:17:42.72ID:1ZQrBI0R 593の言うことは間違ってないと思いますよ。
598デフォルトの名無しさん
2018/09/02(日) 21:02:04.61ID:/2qGDDvp >>592
Application.AdvancedSearchして
Searchオブジェクトを検索フォルダーにSaveするっていうことですかね
単純にVBAでCrtl+Eのクイックサーチ(?)する方法があればと思ったのですが
無理っぽいですね
ありがとうございました
Application.AdvancedSearchして
Searchオブジェクトを検索フォルダーにSaveするっていうことですかね
単純にVBAでCrtl+Eのクイックサーチ(?)する方法があればと思ったのですが
無理っぽいですね
ありがとうございました
599デフォルトの名無しさん
2018/09/06(木) 16:40:58.45ID:KlP6yXrE 初歩的な質問でごめんなさい
うまくできません
If IsNumeric(myN) Then
Range("A1").Value=Range("A1").Value + myN
End If
myNが1の時と2の時があるとしてセルA1の値を3にしたいのですが
やってみると12っていう風に数字が並んでいってしまいます
どうしたらいいでしょうか
うまくできません
If IsNumeric(myN) Then
Range("A1").Value=Range("A1").Value + myN
End If
myNが1の時と2の時があるとしてセルA1の値を3にしたいのですが
やってみると12っていう風に数字が並んでいってしまいます
どうしたらいいでしょうか
600デフォルトの名無しさん
2018/09/06(木) 19:12:55.41ID:iNH/PWkM >>599
もしmyNがString型、あるいはObject型に文字列データが入っている場合は数値型に変換する必要がある
Range("A1").Value = Val(Range("A1").Value) + Val(myN)
でいいんじゃないかな
もしmyNがString型、あるいはObject型に文字列データが入っている場合は数値型に変換する必要がある
Range("A1").Value = Val(Range("A1").Value) + Val(myN)
でいいんじゃないかな
601デフォルトの名無しさん
2018/09/06(木) 19:23:08.77ID:KlP6yXrE602デフォルトの名無しさん
2018/09/21(金) 21:15:16.71ID:Fm9zyYJ3 超初心者です。
Googleの検索窓に「VBA」と入力する サンプルコード
(https://vba-code.net/ie/set-value-to-textbox/) を実行してみましたが、
objIE.document.getElementById("gbqfq").Value = "VBA"のところで
「実行時エラー 424 オブジェクトが必要です。」となって動きません。
「標準モジュールに以下のコードを追加して」の意味が分からないので、
標準モジュールをどう書いたらよいのか、どこに追加したらよいのかわからず
サンプルコードのみを実行しました。
どなたか親切な方、対応方法を教えてください。
難しいことはわからないので具体的にコードを書いてもらえると嬉しいです。
よろしくお願いいたします。
Googleの検索窓に「VBA」と入力する サンプルコード
(https://vba-code.net/ie/set-value-to-textbox/) を実行してみましたが、
objIE.document.getElementById("gbqfq").Value = "VBA"のところで
「実行時エラー 424 オブジェクトが必要です。」となって動きません。
「標準モジュールに以下のコードを追加して」の意味が分からないので、
標準モジュールをどう書いたらよいのか、どこに追加したらよいのかわからず
サンプルコードのみを実行しました。
どなたか親切な方、対応方法を教えてください。
難しいことはわからないので具体的にコードを書いてもらえると嬉しいです。
よろしくお願いいたします。
603デフォルトの名無しさん
2018/09/21(金) 22:26:39.22ID:9i7TQATj >>602
>>objIE.document.getElementById("gbqfq").Value = "VBA"
objIE.Document.getElementById("lst-ib").Value = "VBA"
>>objIE.document.getElementById("gbqfq").Value = "VBA"
objIE.Document.getElementById("lst-ib").Value = "VBA"
604デフォルトの名無しさん
2018/09/21(金) 22:40:18.36ID:Fm9zyYJ3605デフォルトの名無しさん
2018/09/21(金) 22:42:58.72ID:MqKbhYRD >>604
おう頑張れ!わからんかったらまたいつでも聞いてくれな!
おう頑張れ!わからんかったらまたいつでも聞いてくれな!
606デフォルトの名無しさん
2018/09/21(金) 23:16:58.27ID:Fm9zyYJ3 >>605
ありがとうございます!
同じことを別のホームページでしたくて、
URLと入力するところを変えてみたのですが、
実行時エラー438 オブジェクトはこのプロパティまたはメソッドをサポートしていませんとなって動きません。
ホームページは
https://www2.smile-etc.jp/NASApp/etcmlg/MlgReq;jsessionid=0001kXELRCuGax2mjI7VtXa12rz:15fqn57ku?gvlddpef=1011100000&mdwsetmb=1011120000の画面でしたくて、
入力するところは
objIE.document.getElementsByName("Name1Kana").Value = "マイレージ"としてみました。
お時間あるときでよいので出来たらお願いします。
仕事で毎日同じような入力ばかりしていて自動化できるところをできたらいいなと思っているのですが、超初心者にはハードルが高くて難しいです 涙
'
ありがとうございます!
同じことを別のホームページでしたくて、
URLと入力するところを変えてみたのですが、
実行時エラー438 オブジェクトはこのプロパティまたはメソッドをサポートしていませんとなって動きません。
ホームページは
https://www2.smile-etc.jp/NASApp/etcmlg/MlgReq;jsessionid=0001kXELRCuGax2mjI7VtXa12rz:15fqn57ku?gvlddpef=1011100000&mdwsetmb=1011120000の画面でしたくて、
入力するところは
objIE.document.getElementsByName("Name1Kana").Value = "マイレージ"としてみました。
お時間あるときでよいので出来たらお願いします。
仕事で毎日同じような入力ばかりしていて自動化できるところをできたらいいなと思っているのですが、超初心者にはハードルが高くて難しいです 涙
'
607デフォルトの名無しさん
2018/09/21(金) 23:29:19.39ID:m8DL5ZJ4 getElementById("gbqfq")
getElementById("lst-ib")
君は、この違いがわからないの?
HTML, DOM, CSS, JavaScript とか知らないの?
VBA には関係ないのだけど。
全言語・プログラミングに共通の話題なんだが
getElementById("lst-ib")
君は、この違いがわからないの?
HTML, DOM, CSS, JavaScript とか知らないの?
VBA には関係ないのだけど。
全言語・プログラミングに共通の話題なんだが
608デフォルトの名無しさん
2018/09/21(金) 23:59:36.29ID:Fm9zyYJ3 >>607
すみません、わかりません。
すみません、わかりません。
609607
2018/09/22(土) 01:01:33.83ID:DCTpeoPT HTML に書いてある、ID だよ
ウェブページは、HTML(DOM), CSS, JavaScript で出来ている。
ブラウザでF12 を押すと、開発者ツールが起動するだろ
これらを知らないと、ウェブ開発はできない!
VBA とは、全く関係ない
ウェブページは、HTML(DOM), CSS, JavaScript で出来ている。
ブラウザでF12 を押すと、開発者ツールが起動するだろ
これらを知らないと、ウェブ開発はできない!
VBA とは、全く関係ない
610デフォルトの名無しさん
2018/09/22(土) 03:52:07.76ID:AiTHsE5Z611デフォルトの名無しさん
2018/09/22(土) 09:42:45.32ID:AiTHsE5Z >>606
自己解決して、自動入力マクロができました!ありがとうございました。
自己解決して、自動入力マクロができました!ありがとうございました。
612デフォルトの名無しさん
2018/10/12(金) 07:52:16.28ID:OKfVsW46 VBAでできることはC#でもやることはできますか?
613デフォルトの名無しさん
2018/10/12(金) 07:55:38.55ID:/wsNoZ03 できます
614デフォルトの名無しさん
2018/10/12(金) 09:20:25.16ID:dGKqHjcm ユーザー定義関数の作成以外ならなんでもできます
615デフォルトの名無しさん
2018/10/12(金) 09:54:55.01ID:TjU2aakC それにしても、なんで、マクロはFunctionしかcall出来ないんだろうね。
無駄にFunctionを作らないようにと英語の本には書いてある。Subで済むもをFunctionにするなと書いてある。
なのに、マクロの仕様のために、無駄にFunctionをつくったり、SubをcallするだけのFunctionを作ったりしないといけないのは間抜けな仕様だと思うがどうだろうか?
無駄にFunctionを作らないようにと英語の本には書いてある。Subで済むもをFunctionにするなと書いてある。
なのに、マクロの仕様のために、無駄にFunctionをつくったり、SubをcallするだけのFunctionを作ったりしないといけないのは間抜けな仕様だと思うがどうだろうか?
616デフォルトの名無しさん
2018/10/12(金) 10:38:39.78ID:/wsNoZ03617デフォルトの名無しさん
2018/10/12(金) 10:53:20.05ID:TjU2aakC >>616
マクロからSubをCallできないのは知ってますか?
マクロからSubをCallできないのは知ってますか?
618デフォルトの名無しさん
2018/10/12(金) 12:09:03.01ID:bZOmvKy4619デフォルトの名無しさん
2018/10/12(金) 12:28:42.41ID:YStpcFYj620デフォルトの名無しさん
2018/10/12(金) 14:32:33.06ID:E7u6qrbY あれ?エクセルは出来るの?
アクセスは駄目なんだよ
アクセスは駄目なんだよ
621デフォルトの名無しさん
2018/10/12(金) 17:15:46.40ID:QO2uhWCP VBAしか使わない人間は、WinAPI使わない人間はSubしかCallしない。
622デフォルトの名無しさん
2018/10/12(金) 17:26:32.07ID:Vm21lImY VBAより日本語がおかしい
623デフォルトの名無しさん
2018/10/12(金) 17:45:20.75ID:TjU2aakC なんでAccessはマクロからSubを呼び出せない仕様なんだろうか?
624デフォルトの名無しさん
2018/10/12(金) 17:45:47.46ID:TjU2aakC つーか、ここはExcelのスレなのかな?
625デフォルトの名無しさん
2018/10/12(金) 18:11:30.85ID:Zsf/ZX4u Accessでも出来るぞ
626デフォルトの名無しさん
2018/10/12(金) 18:20:18.57ID:4bQjrfTH ほんとに?MSのサイトに対処方法が書いてあったけどなあ。
仕事で使ってたmdbでエラー出まくってSubをFunctionに書き換えた記憶があるけどなあ
仕事で使ってたmdbでエラー出まくってSubをFunctionに書き換えた記憶があるけどなあ
627デフォルトの名無しさん
2018/10/12(金) 18:45:46.09ID:S2JrLclJ 意味が分からん。
ExcelだろうがAccessだろうが当たり前にできる。
やり方間違えてるだけだろ。
lngRet = FuncA("何かの引数")
Call SubA("何かの引数", "何かの引数2")
これはできる。
SubでCallを省いた場合に
SubA("何かの引数1", "何かの引数2")
とするのは出来ない。
Callを省く場合は
SubA "何かの引数1", "何かの引数2"
とする。
ExcelだろうがAccessだろうが当たり前にできる。
やり方間違えてるだけだろ。
lngRet = FuncA("何かの引数")
Call SubA("何かの引数", "何かの引数2")
これはできる。
SubでCallを省いた場合に
SubA("何かの引数1", "何かの引数2")
とするのは出来ない。
Callを省く場合は
SubA "何かの引数1", "何かの引数2"
とする。
628デフォルトの名無しさん
2018/10/12(金) 19:05:34.79ID:TjU2aakC >>627
AccessとExceの用語の違いが問題かもしれません。
Accessだとマクロのデザインビューで新しいアクションの実行→プロシジャーの実行を選択→プロシジャー名を指定という流れです。
ここでSubを入れるとエラーになり、Functionを入れると実行されます。
全く同じ動作でもSubだとエラーでFunctionだと実行されるという謎仕様のことです。
AccessとExceの用語の違いが問題かもしれません。
Accessだとマクロのデザインビューで新しいアクションの実行→プロシジャーの実行を選択→プロシジャー名を指定という流れです。
ここでSubを入れるとエラーになり、Functionを入れると実行されます。
全く同じ動作でもSubだとエラーでFunctionだと実行されるという謎仕様のことです。
629デフォルトの名無しさん
2018/10/12(金) 19:37:39.24ID:aE6SgoRY 同じように困ってる人がいました。
Subプロシージャをマクロで実行する方法を教えてください
http://webcache.googleusercontent.com/search?q=cache:PplL--43vEQJ:www.accessclub.jp/bbs3/0178/superbeg59084.html+&cd=5&hl=ja&ct=clnk&gl=jp&client=firefox-b-ab
Calling Sub from Macro
https://www.pcreview.co.uk/threads/calling-sub-from-macro.3966923/
Subプロシージャをマクロで実行する方法を教えてください
http://webcache.googleusercontent.com/search?q=cache:PplL--43vEQJ:www.accessclub.jp/bbs3/0178/superbeg59084.html+&cd=5&hl=ja&ct=clnk&gl=jp&client=firefox-b-ab
Calling Sub from Macro
https://www.pcreview.co.uk/threads/calling-sub-from-macro.3966923/
630デフォルトの名無しさん
2018/10/12(金) 19:39:49.69ID:wk7eAlWy >>628
Accessマクロの「プロシージャの実行」機能は、Functionプロシージャに限ってアプリ経由でコールバックさせることができるっていう一種のリフレクション機能だから、仕様上Subプロシージャを呼べないのは当たり前
でも普通はVBAその他一般のプログラミング言語の話題でCallするとかコードを呼び出すとか言う場合、プログラムのコード中で他のプロシージャ(=メソッド)を呼び出すこと一般を指す
AccessだろうがCallステートメントでSubを呼べないわけがない
全然話してる内容が違う
Accessマクロの「プロシージャの実行」機能は、Functionプロシージャに限ってアプリ経由でコールバックさせることができるっていう一種のリフレクション機能だから、仕様上Subプロシージャを呼べないのは当たり前
でも普通はVBAその他一般のプログラミング言語の話題でCallするとかコードを呼び出すとか言う場合、プログラムのコード中で他のプロシージャ(=メソッド)を呼び出すこと一般を指す
AccessだろうがCallステートメントでSubを呼べないわけがない
全然話してる内容が違う
631デフォルトの名無しさん
2018/10/12(金) 19:42:56.49ID:4ERZBcjn MSの提示する対処方法
https://docs.microsoft.com/ja-jp/office/client-developer/access/desktop-database-reference/runcode-macro-actionから抜粋
>>[!ヒント] Visual Basic で記述した Sub プロシージャまたはイベント プロシージャを実行するには、Sub プロシージャまたはイベント プロシージャを呼び出す Function プロシージャを作成します。
>>その後、 RunCode アクションを使用して、Function プロシージャを実行します。
https://docs.microsoft.com/ja-jp/office/client-developer/access/desktop-database-reference/runcode-macro-actionから抜粋
>>[!ヒント] Visual Basic で記述した Sub プロシージャまたはイベント プロシージャを実行するには、Sub プロシージャまたはイベント プロシージャを呼び出す Function プロシージャを作成します。
>>その後、 RunCode アクションを使用して、Function プロシージャを実行します。
632デフォルトの名無しさん
2018/10/12(金) 19:47:22.51ID:4ERZBcjn >>630
そうなんですか?Callという言葉の使い方が悪かったのですね。
Accessのマクロのプロシジャーの実行からSubを実行できないという表現が適切なんですね。
それにしても謎仕様ですね。いちいちCall_SubみたいなFunctionを作らないといけないなんて馬鹿らしいですよね。
Subを使うのを止めて戻り値を使わないのになんでもかんでもFunctionにしている人がいるのはこのあたりにも原因があるのでしょうかね。。。
そうなんですか?Callという言葉の使い方が悪かったのですね。
Accessのマクロのプロシジャーの実行からSubを実行できないという表現が適切なんですね。
それにしても謎仕様ですね。いちいちCall_SubみたいなFunctionを作らないといけないなんて馬鹿らしいですよね。
Subを使うのを止めて戻り値を使わないのになんでもかんでもFunctionにしている人がいるのはこのあたりにも原因があるのでしょうかね。。。
633デフォルトの名無しさん
2018/10/12(金) 20:06:27.08ID:a+EZTAPW C#やJavaなどの言語にはfunction相当の構文しか存在しないから、それに合わせてるだけかも
634デフォルトの名無しさん
2018/10/12(金) 20:12:42.89ID:Vm21lImY サブルーチンというものは、マクロ上での繰り返し処理や重複処理が必要な場合に同じコードを何度も記載することを回避して、プログラムの再利用性と簡潔性とメンテナンス性を高めるためのもので一種の共通部品で呼び出して使えるためとても便利。
その代わり呼び出し側のコードが必ず必要。
その代わり呼び出し側のコードが必ず必要。
635デフォルトの名無しさん
2018/10/12(金) 20:15:04.20ID:Vm21lImY よってユーザー定義関数とは自ずと目的が違う。
636デフォルトの名無しさん
2018/10/12(金) 20:43:31.86ID:xhA4Quty たとえ1回しか使わなくても、機能ごとに分けて名前を付けることでコードの見通しを良くするという目的もある
637デフォルトの名無しさん
2018/10/12(金) 23:37:21.09ID:CecLyO81 どーでもいいわそーゆーおまえのこだわりw
638デフォルトの名無しさん
2018/10/12(金) 23:40:27.93ID:kwtsHVW5 ・Accessのマクロの「プロシージャの実行」機能は要するに「関数を実行する」ことに重きを置いている機能なので、関数ではないSubプロシージャは呼び出せない。
・「呼び出す」と「Callする」は意味が(あるいは受け取り方が)違うので下手に知ったかぶりしないこと。
・「呼び出す」と「Callする」は意味が(あるいは受け取り方が)違うので下手に知ったかぶりしないこと。
639デフォルトの名無しさん
2018/10/12(金) 23:43:28.15ID:CecLyO81 アクセスさんの気持ちを代弁するやつw
640デフォルトの名無しさん
2018/10/13(土) 14:18:57.90ID:7+viDhhJ >>638
関数という言葉の定義次第ではSub Procedureも関数の一種になるぞ
あと、Accessマクロの実行機能に関する話題でマクロピッカーからプロシージャを直接選択して実行する操作を指して「呼び出す」とか「Callする」と表現する例は比較的稀だと思うぞ
関数という言葉の定義次第ではSub Procedureも関数の一種になるぞ
あと、Accessマクロの実行機能に関する話題でマクロピッカーからプロシージャを直接選択して実行する操作を指して「呼び出す」とか「Callする」と表現する例は比較的稀だと思うぞ
641デフォルトの名無しさん
2018/10/13(土) 18:29:35.77ID:hGe/e45K 数学的な定義だと関数は一対一の写像だから戻り値がないものは関数ではなくなってしまう
丸投げアウトソーシングとでも言えばいいのか
丸投げアウトソーシングとでも言えばいいのか
642デフォルトの名無しさん
2018/10/14(日) 01:16:47.10ID:FNEdXER5 >>641
その理屈だと、Function Procedureが戻り値なしの記述を許容していること、戻り値と全く論理的な二項関係がない処理をFunction Procedureの中に書けてしまうことを考えた場合、Function Procedureが果たして関数と言えるのかどうかということの方が怪しくなる
その理屈だと、Function Procedureが戻り値なしの記述を許容していること、戻り値と全く論理的な二項関係がない処理をFunction Procedureの中に書けてしまうことを考えた場合、Function Procedureが果たして関数と言えるのかどうかということの方が怪しくなる
643デフォルトの名無しさん
2018/10/14(日) 18:45:30.05ID:+nd0Ta/b それはプロパティとメソッドについても言えるわけで。
意味合いから使い分ければ良い。
Accessの仕事してるけどいわゆるAccessのマクロ機能は嫌いなので殆ど触ったことないな。
意味合いから使い分ければ良い。
Accessの仕事してるけどいわゆるAccessのマクロ機能は嫌いなので殆ど触ったことないな。
644デフォルトの名無しさん
2018/10/15(月) 00:09:25.20ID:bvVmxQGC645デフォルトの名無しさん
2018/11/14(水) 18:28:17.85ID:yWBiOXbZ vba初心者でわからないところがあって質問したいんですけど、ここで大丈夫ですか?
646デフォルトの名無しさん
2018/11/14(水) 18:50:01.08ID:JBsUV7Ak ExcelとAccessは専門スレが別にあるけどな
647デフォルトの名無しさん
2018/11/14(水) 19:18:54.83ID:yWBiOXbZ 学校の課題なんですがさっぱり分かりません
コードの入力?を教えてほしいです
https://i.imgur.com/F4T8tlt.jpg
https://i.imgur.com/3L2Gjq0.jpg
コードの入力?を教えてほしいです
https://i.imgur.com/F4T8tlt.jpg
https://i.imgur.com/3L2Gjq0.jpg
648デフォルトの名無しさん
2018/11/14(水) 19:27:08.71ID:yRk1YRk6 >>647
その宿題をやるには「フォームの作成」という作業が必要で、それは文章だけの掲示板じゃとても説明できない
その宿題をやるには「フォームの作成」という作業が必要で、それは文章だけの掲示板じゃとても説明できない
649デフォルトの名無しさん
2018/11/14(水) 19:33:23.32ID:JBsUV7Ak 二次方程式 VBAのキーワードでぐぐればそれなりに情報はあるよ
650デフォルトの名無しさん
2018/11/14(水) 20:36:22.41ID:yWBiOXbZ651デフォルトの名無しさん
2018/11/14(水) 20:37:40.54ID:yWBiOXbZ652デフォルトの名無しさん
2018/11/14(水) 22:42:46.78ID:iSnTRpeY 学校でExcelの課題出るのか
全員Excel入りのWindows機もってる前提なのか
全員Excel入りのWindows機もってる前提なのか
653デフォルトの名無しさん
2018/11/14(水) 22:53:14.87ID:JBsUV7Ak 商業科高校と大学生は皆持たされる時代やね
654デフォルトの名無しさん
2018/11/15(木) 12:24:37.27ID:yIPB3Fsn なきゃ学校にあるPC使うだけやんけ
変な事気にする奴やな
変な事気にする奴やな
655デフォルトの名無しさん
2018/11/15(木) 14:25:13.91ID:njFgw0Uw >>653
商業科の電卓名人みないな奴は、もぅおらんのか
商業科の電卓名人みないな奴は、もぅおらんのか
656デフォルトの名無しさん
2018/11/15(木) 23:21:50.05ID:XqpfGkJo VBAで3つ数値があった時、最大値を表示させたい時
下記URLのNo.4の回答のelseifを使ったものがありますが、
elseifを使わずにelseだけで表示しようとすると、
どのようになるのでしょうか?
宜しくお願いします
ttps://oshiete.goo.ne.jp/qa/5352661.html
下記URLのNo.4の回答のelseifを使ったものがありますが、
elseifを使わずにelseだけで表示しようとすると、
どのようになるのでしょうか?
宜しくお願いします
ttps://oshiete.goo.ne.jp/qa/5352661.html
657デフォルトの名無しさん
2018/11/15(木) 23:28:15.36ID:XqpfGkJo 分かりづらそうなので追記で、下記のところです。
宜しくお願いします
a = 10
b = 200
c = 30
Max = a
If b > Max Then
Max = b
ElseIf c > Max Then
Max = c
End If
宜しくお願いします
a = 10
b = 200
c = 30
Max = a
If b > Max Then
Max = b
ElseIf c > Max Then
Max = c
End If
658デフォルトの名無しさん
2018/11/15(木) 23:37:03.06ID:dI+Dsxy9 Max = a
If b > Max Then
Max = b
Else
If c > Max Then Max = c
End If
If b > Max Then
Max = b
Else
If c > Max Then Max = c
End If
659デフォルトの名無しさん
2018/11/16(金) 06:18:18.01ID:biDBAQdb660デフォルトの名無しさん
2018/11/16(金) 06:57:12.53ID:fQoG7lNZ そもそも657では最大値求められないだろ。
なぜ他の2つと比較してから決めないのか
なぜ他の2つと比較してから決めないのか
661デフォルトの名無しさん
2018/11/16(金) 07:24:20.18ID:biDBAQdb すいません、まだ初心者でまだ理解が追いついていなくて
とりあえず最大値求めるにはこういう形...とかで覚えようとしてて....頑張ります
とりあえず最大値求めるにはこういう形...とかで覚えようとしてて....頑張ります
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★4 [BFU★]
- 小野田氏、”中国経済への依存“に警戒感 高市首相の国会答弁巡り [煮卵★]
- 【こんなの初めて…】民泊には既にキャンセルも 中国の渡航自粛で [ぐれ★]
- 日本が「世界で最も魅力的な国」1位に!✨「魅力的な都市」では東京が2位 「魅力的な地域」は北海道が7位に [煮卵★]
- 台湾声明 「台湾は独立した主権国家、中国は台湾を統治したことがなく、中国は口出しする権利ない」 中国が高市首相に抗議で ★7 [お断り★]
- 【サッカー】独占入手 最年長JリーガーにW不倫疑惑 『お風呂覗きたいんですが笑』LINE流出も… 慰謝料トラブルを本人に直撃 [冬月記者★]
- 東浩紀「日本はいままさに駆け引きをしている。」高市有事にピシャリ [834922174]
- 【高市経済】日経平均マイナス1600円!、金利1.76%!ドル円155円!世界恐慌へ [219241683]
- 日経平均、49000円割れ 国賊高市を許すな [402859164]
- 【悲報】麻生太郎、石破憎しで高市を擁立し晩節を汚す [884040186]
- とうすこ🏡愛され絵文字♡🤥👊😅👊👶♡
- 【高市速報】日本「中国さんお願い首脳会談させて!ねえってば!😭」 [931948549]
