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:KLv0vQmm597デフォルトの名無しさん
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 すいません、まだ初心者でまだ理解が追いついていなくて
とりあえず最大値求めるにはこういう形...とかで覚えようとしてて....頑張ります
とりあえず最大値求めるにはこういう形...とかで覚えようとしてて....頑張ります
662デフォルトの名無しさん
2018/11/16(金) 07:30:47.41ID:1oL4uemZ 658でも最大値は求められない
試しに
a = 1
b = 2
c = 3
で試してみるといい。Maxが2になってしまう
Ifだけでやる場合の正解の一例
Max = a
If b > Max Then Max = b
If c > Max Then Max = c
試しに
a = 1
b = 2
c = 3
で試してみるといい。Maxが2になってしまう
Ifだけでやる場合の正解の一例
Max = a
If b > Max Then Max = b
If c > Max Then Max = c
663デフォルトの名無しさん
2018/11/16(金) 07:35:16.96ID:1oL4uemZ >>661
If Elseの構文は、最初のIfの条件が成立したらElse以降は処理されずEnd Ifまで飛ばされる
つまり、
a = 1
b = 2
c = 3
だった場合、
b > Maxが成立したらc > Maxの部分は飛ばされてしまうからMaxは2のまま終わってしまう
If Elseの構文は、最初のIfの条件が成立したらElse以降は処理されずEnd Ifまで飛ばされる
つまり、
a = 1
b = 2
c = 3
だった場合、
b > Maxが成立したらc > Maxの部分は飛ばされてしまうからMaxは2のまま終わってしまう
664デフォルトの名無しさん
2018/11/16(金) 07:44:30.26ID:fQoG7lNZ elseやelseifは先行条件でTrueにならない場合にしか実施されない仕組みなことを理解しましょう
665デフォルトの名無しさん
2018/11/16(金) 08:11:14.61ID:nU0jfNiC >>661
このレベルを形で覚えようとしている貴方にプログラミングは向いてない
このレベルを形で覚えようとしている貴方にプログラミングは向いてない
666デフォルトの名無しさん
2018/11/16(金) 09:26:27.62ID:RKO+v0zL667デフォルトの名無しさん
2018/11/16(金) 09:39:56.01ID:fQoG7lNZ 本当のプログラミング初学者なら仕方ない。制御構文なんてどの言語も似てるので、1つ覚えれば次は勘が効くようになるよ、長い目でがんばりなされ
668デフォルトの名無しさん
2018/11/17(土) 01:11:45.44ID:A0ACnair 最大値を求めたいならWorkSheetFunction.MAX使えば良いんじゃね?
669デフォルトの名無しさん
2018/11/17(土) 12:08:31.57ID:vo1go4s2 自民党ですらエクセル操作ミスるくらいだからな
670デフォルトの名無しさん
2018/11/17(土) 12:09:52.07ID:vo1go4s2 税金の計算もおかしくね?って思う
671デフォルトの名無しさん
2018/12/16(日) 00:58:32.35ID:SwJ6GlUb >>668
わにわに
わにわに
672デフォルトの名無しさん
2018/12/16(日) 01:01:16.65ID:SwJ6GlUb パニックを、5人がかりでやれば楽勝だろ、とか言ってるようなもの。
673デフォルトの名無しさん
2018/12/17(月) 09:39:23.91ID:5sE/cfMN エクセルVBAじゃなかったらどうするの
674デフォルトの名無しさん
2018/12/18(火) 22:55:12.06ID:A6rQVaax 確かに。
エクセロかも知れないもんな。
エクセロかも知れないもんな。
675デフォルトの名無しさん
2018/12/26(水) 21:53:30.63ID:KrpjpPkw VBA初心者です。少し長くなってしまいますが質問です。
・やりたいこと
1:現マクロ有効ブックのsheet1にフォームボタン設置する。
2:押すとC:\Users\Public\動物まとめ.xlsx をバックグラウンドで開き、その中のシート名"カピバラ情報"の E列4行目から5行目6行目...と、空白が来るまでの情報を取得しする。
3:現マクロ有効ブックに新しくsheet2を作り、その新シートのA1からA2A3...に取得した情報を書き込む。
現在のマクロは下記ですが上手くいかないです。
Option Explicit
Sub practice()
Dim i As Long
i = 4
Dim fullPass As String
'セルのB3に C:\Users\Public\動物まとめ.xlsxと記述
fullPass = Range("B3")
Dim wb As Workbook
Dim Anothersheet As Worksheet
Workbooks.Open fullPass
Set Anothersheet = wb.Worksheets("カピバラ情報")
Sheets.Add After:=ActiveSheet
Range("A1").Select
Do While Cells(5, i).Value <> ""
i = i + 1
Loop
Call wb.Close
End Sub
上手く情報を取得できないのでアドバイスお願いします。
・やりたいこと
1:現マクロ有効ブックのsheet1にフォームボタン設置する。
2:押すとC:\Users\Public\動物まとめ.xlsx をバックグラウンドで開き、その中のシート名"カピバラ情報"の E列4行目から5行目6行目...と、空白が来るまでの情報を取得しする。
3:現マクロ有効ブックに新しくsheet2を作り、その新シートのA1からA2A3...に取得した情報を書き込む。
現在のマクロは下記ですが上手くいかないです。
Option Explicit
Sub practice()
Dim i As Long
i = 4
Dim fullPass As String
'セルのB3に C:\Users\Public\動物まとめ.xlsxと記述
fullPass = Range("B3")
Dim wb As Workbook
Dim Anothersheet As Worksheet
Workbooks.Open fullPass
Set Anothersheet = wb.Worksheets("カピバラ情報")
Sheets.Add After:=ActiveSheet
Range("A1").Select
Do While Cells(5, i).Value <> ""
i = i + 1
Loop
Call wb.Close
End Sub
上手く情報を取得できないのでアドバイスお願いします。
676デフォルトの名無しさん
2018/12/27(木) 00:53:04.14ID:coxr7jtk677デフォルトの名無しさん
2018/12/27(木) 00:55:19.50ID:coxr7jtk >>675
fullpass じゃなくて、fullpath ね。
fullpass じゃなくて、fullpath ね。
678デフォルトの名無しさん
2018/12/27(木) 01:02:39.75ID:coxr7jtk679デフォルトの名無しさん
2018/12/27(木) 01:09:08.59ID:coxr7jtk >>675
Cell値を取るときは、デフォルトにまかせずちゃんとプロパティ指定しよう。
Cell値を取るときは、デフォルトにまかせずちゃんとプロパティ指定しよう。
680デフォルトの名無しさん
2018/12/27(木) 01:16:51.54ID:coxr7jtk681デフォルトの名無しさん
2018/12/27(木) 09:18:35.23ID:psUgzr4+682デフォルトの名無しさん
2018/12/27(木) 09:19:34.30ID:lhYnw8ev >>675
最初に注意すべきなのは、いきなりRangeやCellsは絶対に使うべきじゃないってこと。
ちゃんと省略せずにWorkbookやWorksheetから書くようにする。
しかしそれだとコ―ドが長くなるのでそのために今回のコードのように変数で受けるかWith文を使う。
以下はスマホ上で書いてるんで動くかは不明です。
最初に注意すべきなのは、いきなりRangeやCellsは絶対に使うべきじゃないってこと。
ちゃんと省略せずにWorkbookやWorksheetから書くようにする。
しかしそれだとコ―ドが長くなるのでそのために今回のコードのように変数で受けるかWith文を使う。
以下はスマホ上で書いてるんで動くかは不明です。
683デフォルトの名無しさん
2018/12/27(木) 09:20:24.73ID:lhYnw8ev Option Explicit
Sub practice()
Dim i As Long
Dim fullPath As String
Dim wb As Workbook
'Anothersheetじゃ分かりにくいんでopnShtに変更。
Dim opnSht As Worksheet
'追加シートは変数に受けないの?
Dim addSht As Worksheet
'セルのB3てどこ?
'多分ボタンのあるシートかなと推測。
fullPass = Thisworkbook.Worksheets("Sheet1").Range("B3").Value
'B3に出鱈目書いて動かしたらどうなるんだろう?
Set wb = Workbooks.Open(fullPath)
Set opnSht = wb.Worksheets("カピバラ情報")
With Thisworkbook
Set addSht = .WorkSheets.Add( After:=.WorkSheets("Sheet1"))
End With
'Range("A1").Selectって何の為に有るの?
'iの初期値を一番最初に書いてたけど、初めて見たとき何だか分からんかった。
'使う直前に関連処理と一緒にまとめた方が分かり易いよね。
i=4
Do While opnSht.Cells(5, i).Value <> ""
i = i + 1
Loop
'元のCall wb.Closeなどという書き方をしたことが無いのでいつもの自分の書き方に変更。
wb.Close False
End Sub
Sub practice()
Dim i As Long
Dim fullPath As String
Dim wb As Workbook
'Anothersheetじゃ分かりにくいんでopnShtに変更。
Dim opnSht As Worksheet
'追加シートは変数に受けないの?
Dim addSht As Worksheet
'セルのB3てどこ?
'多分ボタンのあるシートかなと推測。
fullPass = Thisworkbook.Worksheets("Sheet1").Range("B3").Value
'B3に出鱈目書いて動かしたらどうなるんだろう?
Set wb = Workbooks.Open(fullPath)
Set opnSht = wb.Worksheets("カピバラ情報")
With Thisworkbook
Set addSht = .WorkSheets.Add( After:=.WorkSheets("Sheet1"))
End With
'Range("A1").Selectって何の為に有るの?
'iの初期値を一番最初に書いてたけど、初めて見たとき何だか分からんかった。
'使う直前に関連処理と一緒にまとめた方が分かり易いよね。
i=4
Do While opnSht.Cells(5, i).Value <> ""
i = i + 1
Loop
'元のCall wb.Closeなどという書き方をしたことが無いのでいつもの自分の書き方に変更。
wb.Close False
End Sub
684デフォルトの名無しさん
2018/12/27(木) 09:22:53.65ID:lhYnw8ev685デフォルトの名無しさん
2018/12/27(木) 09:26:03.58ID:lhYnw8ev 早速間違いだ。
fullPassと書いてる所が一ヶ所ある。
fullPathに直しておいてね。
fullPassと書いてる所が一ヶ所ある。
fullPathに直しておいてね。
686デフォルトの名無しさん
2018/12/27(木) 11:21:46.87ID:coxr7jtk687デフォルトの名無しさん
2018/12/27(木) 11:57:21.88ID:psUgzr4+688デフォルトの名無しさん
2018/12/27(木) 12:23:02.37ID:psUgzr4+ 少し言葉足らずでした。
iのカウント(空白行までループ)は上手く出来ているので、現マクロ有効ブックの新シートに取得情報を
書き込めていないようです。
iのカウント(空白行までループ)は上手く出来ているので、現マクロ有効ブックの新シートに取得情報を
書き込めていないようです。
689デフォルトの名無しさん
2018/12/27(木) 12:57:12.54ID:lhYnw8ev >>688
うん?
Do〜Loopの中はiのカウントアップしてるだけなので、あなたが省略した(と勝手に思ってるんだけど)コードが動いていないということ?
念のためにいうと、元々のコードには情報を取得するコードが全く無いからこのコードだけじゃ取り込めないのは当たり前だよね。
うん?
Do〜Loopの中はiのカウントアップしてるだけなので、あなたが省略した(と勝手に思ってるんだけど)コードが動いていないということ?
念のためにいうと、元々のコードには情報を取得するコードが全く無いからこのコードだけじゃ取り込めないのは当たり前だよね。
690デフォルトの名無しさん
2018/12/27(木) 13:47:48.84ID:psUgzr4+ すいません、
不覚に気づき、
dim j as long
j = 1
を追加し、ループを
Do While opnSht.Cells(5, i).Value <> ""
addSht.cells(j,1) = opnSht.Cells(i, 5)
j = i
i = i + 1
Loop
にして上手くいきました、ありがとうございます。
不覚に気づき、
dim j as long
j = 1
を追加し、ループを
Do While opnSht.Cells(5, i).Value <> ""
addSht.cells(j,1) = opnSht.Cells(i, 5)
j = i
i = i + 1
Loop
にして上手くいきました、ありがとうございます。
691デフォルトの名無しさん
2018/12/27(木) 13:57:20.08ID:psUgzr4+ 細かい修正として
j = i
i = i + 1
の部分も
i = i + 1
j = i - ○
のようにして、
無駄にできてしまう空白もなくしました。
お付き合いしてくださった方、
ありがとうございました。
j = i
i = i + 1
の部分も
i = i + 1
j = i - ○
のようにして、
無駄にできてしまう空白もなくしました。
お付き合いしてくださった方、
ありがとうございました。
692デフォルトの名無しさん
2019/01/03(木) 04:15:42.29ID:aAVkqECP 質問です
ワークシート上にすでに引かれている複雑な枠線をコードとしてどうにか変換というか取得できる方法はないでしょうか…
ワークシート上にすでに引かれている複雑な枠線をコードとしてどうにか変換というか取得できる方法はないでしょうか…
693デフォルトの名無しさん
2019/01/03(木) 04:35:53.91ID:Em9anKIf >>692
描くのの逆をするだけじゃ?
描くのの逆をするだけじゃ?
694デフォルトの名無しさん
2019/01/03(木) 13:29:44.69ID:aAVkqECP695デフォルトの名無しさん
2019/01/03(木) 14:57:12.35ID:9QrYctZ6 何をしたいのか書いてよ
罫線の設定状況を知りたいだけならRange.Borders見なよとしか言えないし
https://docs.microsoft.com/ja-jp/office/vba/api/excel.range.borders
罫線の設定状況を知りたいだけならRange.Borders見なよとしか言えないし
https://docs.microsoft.com/ja-jp/office/vba/api/excel.range.borders
696デフォルトの名無しさん
2019/01/03(木) 15:15:01.64ID:Em9anKIf >>694
罫線を描く動作は理解できてる?
マクロ記録で簡単に調べられますよ。
例えば、2行2列選んで、縦横斜め全てに実線入れて
記録されたものを見ればどのような構造で描かれているのか
分かります。
記録の際は、xl〜の定数でよいですが、取得の際は数値で
返ってくるので注意。
調べたければオブジェクトブラウザで調べてもよいですが、
イミディエイトで、?xlThin みたいに簡単に確認する方法も
あります。
でも、取得して使うなら数値のままでもOKです。
ここまではOK?
罫線を描く動作は理解できてる?
マクロ記録で簡単に調べられますよ。
例えば、2行2列選んで、縦横斜め全てに実線入れて
記録されたものを見ればどのような構造で描かれているのか
分かります。
記録の際は、xl〜の定数でよいですが、取得の際は数値で
返ってくるので注意。
調べたければオブジェクトブラウザで調べてもよいですが、
イミディエイトで、?xlThin みたいに簡単に確認する方法も
あります。
でも、取得して使うなら数値のままでもOKです。
ここまではOK?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★5 [BFU★]
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- 【ローソン】ロゴの「L」で誤解生んだコーヒーカップ、デザイン変更へ 在庫使い切る3か月後にリニューアル [ぐれ★]
- 【悲報】SANA、発言撤回拒否 [769931615]
- 米シンクタンク「アメリカは台湾問題で"あいまい戦略"を取っている。高市早苗はこの方針から逸脱している」 [603416639]
- アラフィフおぢだが、意外と人生悪くない
- ジャーナリストがテレビで解説「台湾問題は高市総理から言ったのではなく、立憲民主が日本の対応可能能力を暴こうとしたから」 [359572271]
- 【朗報】スキースノーボードの季節がやってきた!
- 俺性格悪いなって思った瞬間あげてけ
