『Visual Basic』に関する質問・疑問一覧

関連カテゴリ

次へ  ]
22014件中 181~200件目
  • vbaでファイルを取り込む方法

    Sub ボタン1_Click() Dim f As String '選んだcsvファイルをSheet1に読み込む f = Application.GetOpenFilename("CSVファイル(*.csv),*.csv", 1, "読み込むcsvファイルを選んで", False) If f = "False" Then Exit Sub Workbooks.Open f Cells.Copy ThisWorkbook.Sheets("通販素材").Range("A1") ActiveWorkbook.Close False は以前とあるサイトを参考に少し手を加えたもので、フォルダからファイルを選択し新しいシートにそのファイルの情報を抽出するというものになります。 今回質問したのは、ファイルの取り込みボタンを押してユーザーフォームが出現してから商品情報が載っているcsvもしくはエクセルファイル、在庫表のcsvもしくはエクセルファイルを選択し、処理開始したらitem、在庫表というシートを作成し読み込んだイファイルの情報を抽出するというのをやってみたいのですがどのようにアレンジすればよろしいでしょうか?

    2018/06/05 09:15
  • ジャスト時刻に起動する処理

    ボタンを押した時刻から次の5分後に起動したい。(起動1分前の場合は次の5分に設定したい) 現在時刻 起動時刻 13:36 → 13:40 13:55 → 14:00 23:59 → 00:05 (起動1分前なので次の5分に設定したい) ボタンを押した時間から、起動時刻を5分間隔でジャストで起動したい場合はどう組むのが最適でしょうか。IF文で分岐させて処理させてみましたがどうもうまくいきません。 宜しくお願い致します。

    2018/06/04 13:43
  • 指定ファイルに情報抽出させるvba

    商品情報から別のcsvファイルの仕様に合わせて情報抽出させるvbaの作り方について質問です。 長くなるので下記すぷれっとシート https://docs.google.com/spreadsheets/d/1NVh5Tv7o15WftriFJNfODH_AxOv... をもし可能であればご覧ください。 では、本題に入ります。 通常商品を登録するときに、商品情報が載っているcsvからネットショップで一括登録をするためのcsv用のファイルの仕様に合わせて手作業でコピペしてやっております。 その作業をvbaでできるようにしたいのですが、どのようにしたらよろしいでしょうか 私になりに調べて分かったことは、 https://kosapi.com/post-3215/ に記載されている ・必要な項目列を指定した順番で別シートに抽出するコード例 Sub 項目列抽出() Sheets("抽出").Select Sheets("日別各店売上").Range("A1").CurrentRegion.AdvancedFilter _ Action:=xlFilterCopy, CopyToRange:=Range("A1:C1") End Sub ・商品情報から指定先のフォーマットに合わせるための置換作業(下記は例です。) Sub ボタン1_Click() Dim f As String '選んだcsvファイルをSheet1に読み込む f = Application.GetOpenFilename("CSVファイル(*.csv),*.csv", 1, "読み込むcsvファイルを選んで", False) If f = "False" Then Exit Sub Workbooks.Open f Cells.Copy ThisWorkbook.Sheets("通販素材").Range("A1") ActiveWorkbook.Close False End Sub Sub 連続置換メイン() Dim xSh Application.ScreenUpdating = False For Each xSh In Split("通販素材", ",") '★ Call 連続置換(xSh) Next xSh Application.ScreenUpdating = True End Sub Sub 連続置換(xSh) With ThisWorkbook.Worksheets(xSh).Columns("M") .Replace What:="在庫あり", Replacement:="10" .Replace What:="在庫なし", Replacement:="0" .Replace What:="廃盤", Replacement:="0" End With End Sub vlookupのvba,sumifのvbaを組み合わせるのではないかと考えているのですが、実際にはどういったことをしたらよいかわからないためご教授のほうお願いいたします。

    2018/06/04 07:43
  • 【outlook】1か月分の予定表を書き出すVBA

    こんにちは。 Outlook2010で1か月分の予定をエクセルに書き出したいと考えています。 以下のVBAを見つけることはできましたが、1か月分の予定を書き出すVBAに書き換えができませんでした。 どのように修正すべきかご教示いただければと存じます。 よろしくお願いします。 ---------------------------------------------- Sub Excel週間予定() '期間指定 Dim dateFrom As Date Dim dateTo As Date '初期値 dateFrom = Date '入力ダイアログを表示 dateFrom = InputBox("開始日を入力してください。", "週間予定", dateFrom) '7日間 dateTo = DateAdd("d", 7, dateFrom) 'MsgBox dateFrom 'MsgBox dateTo '予定表モジュールを取得 Dim calmod As CalendarModule Set calmod = Application.ActiveExplorer.NavigationPane.Modules.GetNavigationModule(olModuleCalendar) 'MsgBox calmod 'Excelを取得 Dim Excelapp As Object Set Excelapp = CreateObject("Excel.Application") '表示 Excelapp.Visible = True 'ブックを作成 Excelapp.Workbooks.Add 'ヘッダを準備 Excelapp.Range("A1:G1") = Array("予定表", "件名", "場所", "開始時刻", "終了時刻", "終日イベント") '2行目から Dim row As Integer row = 2 'すべての予定表グループに対して Dim grp As NavigationGroup For Each grp In calmod.NavigationGroups 'MsgBox grp 'すべての予定表に対して Dim fol As NavigationFolder For Each fol In grp.NavigationFolders 'MsgBox fol 'チェックされている予定表のみ If fol.IsSelected Then 'MsgBox fol '予定の絞り込み Dim col As Items Set col = fol.Folder.Items col.Sort "[Start]" col.IncludeRecurrences = True Dim appointment Set appointment = col.Find("[Start] < """ & Format(dateTo, "yyyy/mm/dd") & """ AND [End] >= """ & Format(dateFrom, "yyyy/mm/dd") & """") '見つかった予定に対して While Not appointment Is Nothing Excelapp.Cells(row, 1).Value = fol.DisplayName Excelapp.Cells(row, 2).Value = appointment.Subject Excelapp.Cells(row, 3).Value = appointment.Location Excelapp.Cells(row, 4).Value = appointment.Start Excelapp.Cells(row, 5).Value = appointment.End Excelapp.Cells(row, 6).Value = appointment.AllDayEvent row = row + 1 Set appointment = col.FindNext Wend End If Next Next 'MsgBox "end" End Sub

    2018/06/03 16:51
  • マクロ 実行後にファイルを閉じたい

    マクロを実行した後、実行したファイルを閉じるようにしたいのですが、 どのように書いたらよいか分からず、どなたかご教授いただけませんでしょうか。 グーグルで検索したマクロを実行して、その後その実行したファイルを 閉じるように加えたかったため、以下のPrivate Sub book1close()を加えたのですが 何も起こらずファイルは開かれたままです。 まったく記述する構文を理解できてないのでお恥ずかしい質問で申し訳ございませんがどなたか、どうかよろしくお願い致します。 ---------------------------- Option Explicit  Sub 作業1()   ・・・・・・・  End Sub  Private Sub 作業2()   ・・・・・・・ End Sub Private Sub book1close()   この行以下を追加しましたが動きません! Application.DisplayAlerts = False Workbooks("Book1.xlsx").Save Workbooks("Book1.xlsx").Close Application.DisplayAlerts = True End Sub ----------------------------

    2018/05/30 14:25
  • ListCount -1等

    CommandButtonのコードです。 ListBox2で選択された行を、MsgBoxで表示する様です。 コードの理解が難しく、お助け頂けませんか。 プログラミングもPCもド素人ですのでご了承下さい。。。 Dim i As Integer Dim ah As Integer Dim ms As String ah = ListBox2.ListCount -1※1 For i = 0 To ah If ListBox2.Selected(i) = True Then ms = ms & (i + 1)※2 & vbCrLf※3 Next i MsgBox ms ※1 -1を消すとエラーになるのは何故。 減算の理由は0からカウントされるからだと有るが、最大行数は最大行数ままの数が表示されるので、無くても良い様に見えます。0からカウントとはどういう事なのか。 ※2 ()は書くべきですか。 ※3 何故、改行が必要なのでしょう。 参照ページでも歓迎です。宜しくお願いします。

    • ベストアンサー
    • 暇なときにでも
    • noname#233045
    • Visual Basic
    • 回答1
    2018/05/29 18:38
  • 画像ファイル名をパス付きで表示

    Sub Test2() Dim objFSO As Object Dim sPath As String, sSubFol As String, sFileName As String Dim nRow As Long, nCol As Long Set objFSO = CreateObject("Scripting.FileSystemObject") sPath = "C:\Users\Owner\Downloads\base\setting_000002016\" nRow = 2 sSubFol = Cells(nRow, 1).Text Do While sSubFol <> "" nCol = 11 sFileName = Dir(sPath & sSubFol & "\*.jpg") If objFSO.FileExists(sPath & sSubFol & "\" & sSubFol & ".jpg") Then nCol = 12 Else nCol = 11 End If Do While sFileName <> "" If sFileName = sSubFol & ".jpg" Then Cells(nRow, 11) = sFileName Else Cells(nRow, nCol) = sFileName nCol = nCol + 1 End If sFileName = Dir() Loop nRow = nRow + 1 sSubFol = Cells(nRow, 1).Text Loop Set objFSO = Nothing End Sub こちらは商品番号とサブフォルダの名前が一致したらフォルダ内のファイル名を抽出するというマクロですが、これをパス付で表示という動作をするにはどこをいじればよろしいでしょうか?

    2018/05/28 20:35
  • 一致したファイル名を先頭に抽出させる方法

    Sub Sample() sPath = "C:\Users\Owner\Downloads\base\setting_000002016\" nRow = 2 sSubFol = Cells(nRow, 1).Text Do While sSubFol <> "" nCol = 11 sFileName = Dir(sPath & sSubFol & "\*.jpg") Do While sFileName <> "" Cells(nRow, nCol) = sFileName sFileName = Dir() nCol = nCol + 1 Loop nRow = nRow + 1 sSubFol = Cells(nRow, 1).Text Loop End Sub こちらは、指定の商品番号と同じ商品番号の名前になっているサブフォルダ名のファイル名をK列以降に抽出するというvbaでつくられたプログラムです。 実際の例で説明いたします。 商品番号が123、サブフォルダ名123だとして、 ファイル名が001.jpg,002.jpg.003.jpg,123.jpgという不規則なファイル名があったとします。 上記のプログラムはファイル名の順番問わず K列から順番に001.jpg,002.jpg.003.jpg,123.jpgに抽出されるようになっております。 しかし、仮名のファイルですが、123.jpgというファイル名が最初の列に抽出されたほうがこちらとしましても都合がいいので、同じ名前のファイルがあったら先頭に抽出できるようにしたいのですがどのようにしたらよろしいでしょうか?

    2018/05/25 20:41
  • UserFormコレクション

    UserForm1内に配置されたコントロールを操作するのに、UserForm2を使うことは有りますか。 コレクションで指定する時に・・・UserForm1.Controls("OptionButton1").Value等。 学習教材で、画像はUserForm1だが、コードにはUserForm2と有る。 どうぞ宜しくお願いします。

    • ベストアンサー
    • 暇なときにでも
    • noname#233045
    • Visual Basic
    • 回答1
    2018/05/25 18:00
  • datatableのデータ型

    oracleデータベースよりselectした結果を データアダプタよりデータテーブルにバインドしています。 select時にはTO_NUMBER()としており、抽出結果も整数のみ しか存在しない事を確認しています。 しかしながら、データテーブルではデータ型(datatype)がdecimalとなって しまいます。データ型がintやlongとならない原因や回避策が分る方が いらっしゃいましたらご教授頂けますと幸いです。 別のデータテーブルを準備してデータをコピーしていく方法が ある事は理解していますが、それ以外の方法があるとありがたいです。

    2018/05/25 11:42
  • VBA Forネストのしすぎ

    VBA Forネストのしすぎ 漠然とした質問で申し訳ないのですが VBAに限らず他の言語でも For のネストを多用する傾向にあり 4,5重になってしまい管理が煩雑になったり (他人から見て恐らく)分かりにくいソースになってしまいます 例えば、 ある要素のString一致を探して それを相対参照して一致を探しつつ 更に別のBooleanリストから値の一致を探す。。。 と言った具合です こういった複数の検索をスマートにコーディングする方法はあるでしょうか。

    2018/05/23 18:19
  • Outlook2010のメール書き出しVBAについ

    Outlook2010のメール書き出しVBAを作成しました。 1行目に見出しをいれたいのですがうまく入れられません。 また、800件程度のメールを書きだそうとすると、書き出したエクセルの途中の行に7行くらい空の行が入ってしまいます。 どこをどう直せばよいかよくわからず、 どなたか修正いただけると幸いです。 ---------------------------- Sub メール書き出し日にちのみ() On Error Resume Next Set mySelection = Application.ActiveExplorer.Selection '変更 Set xlApp = CreateObject("Excel.Application") Set myBook = xlApp.Workbooks.Add xlApp.Visible = True With myBook.Worksheets(1) i = 1 For Each MyItem In mySelection '変更 '受信日時 .Cells(i, 1) = MyItem.ReceivedTime '送信者名 .Cells(i, 2) = MyItem.SenderName i = i + 1 Next MyItem End With Set xlApp = Nothing End Sub

    2018/05/22 17:47
  • タブオーダーの設定方法について

    ユーザーフォーム上で右クリック「タブオーダー」以外にプロパティで設定する方法が有るらしく、調べて居りました。 ご確認したいのですが、該当するのは、TabIndex(数値は0,1,2,3...)で宜しいですか。 今、試して、意図しない動作はして居ません。 しかし一度意図しない動きをして居りましたので(再現不可)、間違っているのではと。 何かお気づきの点が有ればご指摘頂けると助かります。 宜しくお願いします。

    • ベストアンサー
    • 暇なときにでも
    • noname#233045
    • Visual Basic
    • 回答2
    2018/05/21 17:09
  • Shell とcmd.exe /c start

    Shell "cmd.exe /c start " & Label1.Caption ラベルにURLを設定し、クリックした時にURLに飛ぶとあります。 コードの理解が難しく、お助け頂けませんか。 プログラミングもPCもド素人ですのでご了承下さい。。。 Shell:実行可能なプログラム(この場合ならcmd.exe?)を実行し、実行が完了するとプログラムのタスクIDを示す(このタスクidでプログラムを操作することになるのだろうか?)。 cmd.exe:コマンドプロンプト cmd.exe/c:コマンドプロンプトで特定のコマンド(URL先へ飛ぶ?)を実行後に終了させる? Label1.Caption:ラベルの内容(URL) startがわからない。何をstartするためのstart? cmd.exeのstart(起動)をShellが実行して、URL先に飛ぶ命令は残りのコードにある? 参照ページでも歓迎です。宜しくお願いします。

    • ベストアンサー
    • 暇なときにでも
    • noname#233045
    • Visual Basic
    • 回答3
    2018/05/21 11:47
  • For Each Nextにつきまして

    Dim a As Chart  For Each a In Charts   a.Delete  Next a Setステートメントを用いないという事は、aはすべてのグラフシートが代入されている事になりますか。しかしeachという事は、結局二行目で行っているのは、全グラフシート中の一枚の確認…ですか?グラフシートを一枚ずつ確認して、一枚ずつ削除しているのですか? またグラフシートが一枚も無い状態でもエラーが起きないのはなぜ? 無ければ、For Each~Next内の処理が実行されないのですか。 宜しく、お願いします。

    • ベストアンサー
    • 暇なときにでも
    • noname#233045
    • Visual Basic
    • 回答1
    2018/05/19 21:03
  • RangeとCells

    Rangeオブジェクトで使えるメソッドやプロパティは、Cellsでも使えるのですか。 多分そうだろうと思うのですが、断定できる情報が見当たりません。 ヘルプで明確な記述が有る記事等あれば教えて下さい。 宜しくお願いします。

    • ベストアンサー
    • 暇なときにでも
    • noname#233045
    • Visual Basic
    • 回答1
    2018/05/19 19:03
  • VisualStudio 2015のアンインストー

    VisualStudio 2015をアンインストールしようとして、netの記事を参考に、 https://github.com/Microsoft/VisualStudioUninstaller/releases からTotalUninstaller.zipをダウンロード後、デスクトップにて解凍 コマンドプロンプトで管理者としてSetup.ForcedUninstall.exeを実行せよとあるので C:\WINDOWS\system32>Setup.ForcedUninstall.exe でエンターキーを押したのですが、 'Setup.ForcedUninstall.exe' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 と表示され実行されませんでした。 何か手違いなどありますでしょうか?

    2018/05/18 12:22
  • VB6のプログラムをVS2017で開くには?

    VB6や、VC++で作成されたプログラムを VisualStduio2017へ移行することになりました。 VisualStduio2017で、VB6やVC++のプロジェクトを開いて コンパイルエラーになる部分を手修正していこうと思ったのですが、 そもそも開くことができません。 新たにプロジェクトを作成して、ソースコピーをして貼り付けし、 コンパイルエラーになる部分を手修正するようなやり方ぐらいしかないでしょうか?

    2018/05/16 20:31
  • エクセル VBA 飛ぶセルの自動連番のつけ方

    エクセル VBA で添付画像のように1枚に30までの自動連番、 セルに1~150と入力すれば自動採番で5枚印刷できるような VBAをご教示下さい。 番号は001のような3ケタの場合でお願いします。

    2018/05/11 21:11
  • 文字入力セルにのみに番号を順に付ける

    ExcelでD3:D12に文字が入力されたあとボタン押しで同じ行B列のB1:B12に入力された文字のセル分だけ順番に番号を入力したいのですがVBAコードが解る方ご教授宜しくお願いします。 office2013です。

    2018/05/09 21:18

ピックアップ