[過去ログ] VBAなんでも質問スレ Part2 [転載禁止]©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
591(3): 2018/09/02(日)16:03 ID:v7+8Ol2A(1) AAS
VBAで質問です
【前提】
・デスクトップにフォルダA
・フォルダAの中に9月1日分のExcelファイル"0901"とマクロ作動用の.xlsmファイル
【したいこと】
・フォルダAの中に9月2日分のフォルダ"0902"を作成
・"0901"を開き、B2セルの2018/9/1を2018/9/2に書き換え
・フォルダ"0902"内にファイル名を"0902"にして保存
日毎のレポートのひな形を作ろうとしています
あまり知らないながら書いてるのですがエラー出まくりで泣きそうです
592(1): 2018/09/02(日)16:16 ID:7fXcCHFS(1) AAS
>>590
Application.Searchメソッド、もしくは
Application.Session.GetDefaultFolder(olFolderInbox).GetTable(DASLクエリの引数) を使えば良いのでは
593(1): 2018/09/02(日)16:51 ID:Q0JGCJ3q(1) AAS
>>591
悪いこと言わないから、手でやるか詳しい人に頼みなさい
複数のブックが同時に開かれている状態でのVBA処理には
いろいろ面倒なところがあり、経験が必要
5ちゃんでサクっと説明できるものではない
しかもフォルダ処理も伴っているので、エラー処理を含め
きっちり作ろうとするとけっこうな規模のアプリになってしまうと思う
594: 2018/09/02(日)17:27 ID:1l6OdzeH(1) AAS
>>591
thisworkbook.path\フォルダA\0901を開いてあとはブック名から指定して必要事項を書き換え。
ブック名を指定してsaveAsで
thisworkbook.path\フォルダA\0902で保存。
蛇足だが、必要無くともブックもシートも常に指定した方が良い。
595: 2018/09/02(日)17:44 ID:GR8jnF/5(1) AAS
>>591
とりあえず作ったコードを晒せば色々添削してもらえるかと
>>593
回答できないなら黙ってなよ
596: 2018/09/02(日)18:16 ID:dkuRxOF+(1) AAS
おそらくやりたいことはこんな感じだろう。
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 ID:1ZQrBI0R(1) AAS
593の言うことは間違ってないと思いますよ。
598: 2018/09/02(日)21:02 ID:/2qGDDvp(2/2) AAS
>>592
Application.AdvancedSearchして
Searchオブジェクトを検索フォルダーにSaveするっていうことですかね
単純にVBAでCrtl+Eのクイックサーチ(?)する方法があればと思ったのですが
無理っぽいですね
ありがとうございました
599(1): 2018/09/06(木)16:40 ID:KlP6yXrE(1/2) AAS
初歩的な質問でごめんなさい
うまくできません
If IsNumeric(myN) Then
Range("A1").Value=Range("A1").Value + myN
End If
myNが1の時と2の時があるとしてセルA1の値を3にしたいのですが
やってみると12っていう風に数字が並んでいってしまいます
どうしたらいいでしょうか
600(1): 2018/09/06(木)19:12 ID:iNH/PWkM(1) AAS
>>599
もしmyNがString型、あるいはObject型に文字列データが入っている場合は数値型に変換する必要がある
Range("A1").Value = Val(Range("A1").Value) + Val(myN)
でいいんじゃないかな
601: 2018/09/06(木)19:23 ID:KlP6yXrE(2/2) AAS
>>600
String型になっていました
参考にしてもっと勉強します
お付き合いくださりありがとうございました
602(1): 2018/09/21(金)21:15 ID:Fm9zyYJ3(1/4) AAS
超初心者です。
Googleの検索窓に「VBA」と入力する サンプルコード
(外部リンク:vba-code.net) を実行してみましたが、
objIE.document.getElementById("gbqfq").Value = "VBA"のところで
「実行時エラー 424 オブジェクトが必要です。」となって動きません。
「標準モジュールに以下のコードを追加して」の意味が分からないので、
標準モジュールをどう書いたらよいのか、どこに追加したらよいのかわからず
サンプルコードのみを実行しました。
どなたか親切な方、対応方法を教えてください。
難しいことはわからないので具体的にコードを書いてもらえると嬉しいです。
よろしくお願いいたします。
603(1): 2018/09/21(金)22:26 ID:9i7TQATj(1) AAS
>>602
>>objIE.document.getElementById("gbqfq").Value = "VBA"
objIE.Document.getElementById("lst-ib").Value = "VBA"
604(1): 2018/09/21(金)22:40 ID:Fm9zyYJ3(2/4) AAS
>>603
ありがとうございます!
できました!!!
なんか分からないけど動いて嬉しいです!
頑張ります。
605(1): 2018/09/21(金)22:42 ID:MqKbhYRD(1) AAS
>>604
おう頑張れ!わからんかったらまたいつでも聞いてくれな!
606(1): 2018/09/21(金)23:16 ID:Fm9zyYJ3(3/4) AAS
>>605
ありがとうございます!
同じことを別のホームページでしたくて、
URLと入力するところを変えてみたのですが、
実行時エラー438 オブジェクトはこのプロパティまたはメソッドをサポートしていませんとなって動きません。
ホームページは
外部リンク:www2.smile-etc.jpの画面でしたくて、
入力するところは
objIE.document.getElementsByName("Name1Kana").Value = "マイレージ"としてみました。
お時間あるときでよいので出来たらお願いします。
仕事で毎日同じような入力ばかりしていて自動化できるところをできたらいいなと思っているのですが、超初心者にはハードルが高くて難しいです 涙
'
607(2): 2018/09/21(金)23:29 ID:m8DL5ZJ4(1) AAS
getElementById("gbqfq")
getElementById("lst-ib")
君は、この違いがわからないの?
HTML, DOM, CSS, JavaScript とか知らないの?
VBA には関係ないのだけど。
全言語・プログラミングに共通の話題なんだが
608: 2018/09/21(金)23:59 ID:Fm9zyYJ3(4/4) AAS
>>607
すみません、わかりません。
609(1): 607 2018/09/22(土)01:01 ID:DCTpeoPT(1) AAS
HTML に書いてある、ID だよ
ウェブページは、HTML(DOM), CSS, JavaScript で出来ている。
ブラウザでF12 を押すと、開発者ツールが起動するだろ
これらを知らないと、ウェブ開発はできない!
VBA とは、全く関係ない
610: 2018/09/22(土)03:52 ID:AiTHsE5Z(1/2) AAS
>>609
>>609
知識もないのに場違いな質問をしてしまいすみませんでした。ご親切にありがとうございました。
611: 2018/09/22(土)09:42 ID:AiTHsE5Z(2/2) AAS
>>606
自己解決して、自動入力マクロができました!ありがとうございました。
612: 2018/10/12(金)07:52 ID:OKfVsW46(1) AAS
VBAでできることはC#でもやることはできますか?
613: 2018/10/12(金)07:55 ID:/wsNoZ03(1/2) AAS
できます
614(1): 2018/10/12(金)09:20 ID:dGKqHjcm(1) AAS
ユーザー定義関数の作成以外ならなんでもできます
615(2): 2018/10/12(金)09:54 ID:TjU2aakC(1/5) AAS
それにしても、なんで、マクロはFunctionしかcall出来ないんだろうね。
無駄にFunctionを作らないようにと英語の本には書いてある。Subで済むもをFunctionにするなと書いてある。
なのに、マクロの仕様のために、無駄にFunctionをつくったり、SubをcallするだけのFunctionを作ったりしないといけないのは間抜けな仕様だと思うがどうだろうか?
616(2): 2018/10/12(金)10:38 ID:/wsNoZ03(2/2) AAS
>>614
それもC#で可能
>>615
ちょっと何言ってるかわかんないですね
617(1): 2018/10/12(金)10:53 ID:TjU2aakC(2/5) AAS
>>616
マクロからSubをCallできないのは知ってますか?
618: 2018/10/12(金)12:09 ID:bZOmvKy4(1) AAS
>>617
知らないです
私の知ってるマクロだとsubもcallできるので
619: 2018/10/12(金)12:28 ID:YStpcFYj(1) AAS
>>616
本当に?
ワークシートからDLL関数をCallするためのインターフェースだけはVBAネイティブのFunctionとして書かなきゃいけないと思ってた
ワークシートから直接C#ソースの関数をCall出来るってこと?
>>615
SubもCall出来る
というかSubは本来Subroutineのことを指すのでそもそもCallできなきゃおかしい
620: 2018/10/12(金)14:32 ID:E7u6qrbY(1) AAS
あれ?エクセルは出来るの?
アクセスは駄目なんだよ
上下前次1-新書関写板覧索設栞歴
あと 382 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.011s