回答数
気になる
-
Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです
大変お世話になっております。 セルF2から、F列に値が入っている最終行までを参照し、セルBV2以下のBV列の”空白セル”に、当日マクロを使用し集計を行った”年月日(登録日)”を入れたいのですが、F列の最終行を取得出来ず、F列に値が入っていない行、BV列のかなり下の行まで登録日が入力されてしまいます…。 それから、出来ましたらBV列の空白セルに”自動で”登録日が入るととても使いやすくなります…。 (ある方法として、別のセルに値を入れると自動で該当の空白セルに、登録年月日+登録(例えばですが、2023/03/05 登録)が反映される等は可能でしょうか…。現在のコードはマクロの作業後、フィルターで抽出し自身で日にちを入力しなければなりません…。) コードを訂正いただけるととても有難いです…! ご回答を心よりお待ちしております。 どうぞ宜しくお願い申し上げます。 Sub TEST() Dim i As Long With ActiveSheet i = 2 Do While .Cells(i, "F").Value <> "" Columns("BV").SpecialCells(xlCellTypeBlanks).Select ActiveCell.FormulaR1C1 = "2023/03/ 登録" i = i + 1 Loop End With End Sub
質問日時: 2023/03/05 02:44 質問者: yuri_7
ベストアンサー
2
0
-
ワークシートチェンジで曜日を表示する方法
いつもお世話になっております 下記のコードを利用して B列が日付ならE列に曜日が表示されるようにしたいのですが わかる方おしえてくれませんでしょうか 下記のコードは途中で挫折してしまいました。 よろしくお願いいたします。 Dim st As String With Target st = .Address(False, False) st = Left(.Address(0, 0), IIf(.Address(0, 0) Like "[A-Z][A-Z]*", 2, 1)) j = Weekday()? Select Case st Case "B" Case 1 .Offset(, 1).Value = "日曜日" Case 2 .Offset(, 1).Value = "月曜日" End Select End With
質問日時: 2023/03/04 21:51 質問者: りんごプリン
ベストアンサー
1
1
-
VBAでの共有パスにつきまして
下記のVBAを共有した場合、 ①のコードでは、 Workbooks.Openで指定した共有パスの「在庫表.xlsm」が開けず、 strPathで指定した共有パスはエラーになりません。 それで仕方なく、②のコードで対応しています。 ②のコードは、サーバーとなるPCのパス(C:から始まる絶対パス)と共有側のパス(\\から始まる共有パス)を設定しています。共有のパスが開かなければ(エラーになれば)絶対パスをwb1に代入する、という方法です。共有側でしか機能しなくサーバー機で実行できないのは問題ですので。。 しかし、ファイルを読み込むstrPathでは、①②ともに共有パスだけで問題なく動作します。 「HOGE_joint\商品リスト」\以下の「注文データ」フォルダにはアクセスできているのに 「HOGE_joint\商品リスト」\以下の「在庫表.xlsm」にはアクセスできない原因がわかりません。 もちろん、在庫表.xlsmだけ特別なアクセス設定をしている訳ではなく、HOGE_joint以下の共有設定はすべてeveryoneでのフルアクセスです。 尚、共有先でしたら、Workbooks.Openで絶対パスを記述しなくても正常に動作していますので、「在庫表.xlsm」がないということはありません。 つきまして、 共有する場合は、やはりサーバー機の絶対パスと共有パスの両方が必要なのでしょうか? その場合、strPathで指定した共有パスだけは、絶対パスがなくとも正常に動作しているのでしょう? 以上につきましてご助言をいただけましたら幸いです。 何卒よろしくお願い申し上げます。 ① ------------------------------------------------------------ Sub DataLoad_test() Dim ・・・ Dim ・・・ Dim ・・・ ' 在庫表を開く Set wb1 = Workbooks.Open("\\HOGE-MAINPC\joint\商品リスト\在庫表.xlsm") Set ws2 = wb1.Sheets("販売数") Set ws3 = wb1.Sheets("在庫高") strPath = "\\HOGE-MAINPC\joint\商品リスト\注文データ\" ' txtファイルを順に読み込む strFileName = Dir(strPath & "*.txt") Do While strFileName <> " ・・・ ・・・ ・・・ ・・・ End Sub ② ------------------------------------------------------------ Sub DataLoad_test() Dim ・・・ Dim ・・・ Dim ・・・ '在庫表を開く ※ローカルと共有の2ヶのパスが必要 On Error Resume Next ' エラーが起きても処理を継続する Set wb1 = Workbooks.Open("\\HOGE-MAINPC\joint\商品リスト\在庫表.xlsm") If wb1 Is Nothing Then ' ファイルが開けなかった場合は、もう一方のパスを試す path = "C:\HOGE\joint\商品リスト\在庫表.xlsm" Set wb1 = Workbooks.Open(path) End If On Error GoTo 0 ' エラー処理を元に戻す Set ws2 = wb1.Sheets("販売数") Set ws3 = wb1.Sheets("在庫高") strPath = "\\HOGE-MAINPC\HOGE_joint\商品リスト\注文データ\" ' txtファイルを順に読み込む strFileName = Dir(strPath & "*.txt") Do While strFileName <> " ・・・ ・・・ ・・・ ・・・ End Sub
質問日時: 2023/03/04 17:24 質問者: maru11586
ベストアンサー
1
0
-
vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成
vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成しました。 その.xlsx形式で保存したものを別の仕組みに投入すると処理が実行されます。 内容に不備があると「取り込みできません」というエラーになります。 私が作成したマクロでは、 マクロ1→別のデータを加工し新データを作成 マクロ2→全体をコピーして値で貼り付け マクロ3→RemoveDuplicatesで重複行があれば削除 マクロ4→デスクトップに.xlsx形式で保存 この4つの起動をかけるようになっています。 このマクロでできた.xlsxを仕組みに投入するとエラーが出ることなく、うまくいきます。 ただ、この.xlsx、1度でも上書き保存すると投入時エラーになりうまく処理がされない、という現象が起こります。 (内容を全く変更せず、上書き保存をするだけでエラーになります) そこでいろいろと試したところ、 マクロ1→マクロ2→マクロ4のみで作成すると、上書き保存してもエラーが出ないことがわかりました。 内容を手で直接入力して変更し、上書きしても問題なく処理されます。 しかし、 マクロ3、RemoveDuplicatesのマクロを含む、 1、2、3、4を全て起動して出来上がったものは、そのままだと投入できて処理がはしるのですが、1度でも上書きすると投入できずエラーになってしまいます。 さらにいろいろと試して 下のほうの空白行を削除して上書き保存すると、エラーにならずうまくいくことがわかりました。 空白行に何かが影響を与えるのでしょうか。 考えられることを何でもいいので教えていただけますとたすかります。 よろしくお願いいたします。
質問日時: 2023/03/03 18:05 質問者: tomorin_とも
ベストアンサー
6
1
-
vbaエクセルマクロについて sheet1のA列が空白の場合、行を削除(一番下の最終行まで)するプロ
vbaエクセルマクロについて sheet1のA列が空白の場合、行を削除(一番下の最終行まで)するプログラムを教えてください。
質問日時: 2023/03/03 17:41 質問者: tomorin_とも
ベストアンサー
3
2
-
複数のcsvファイルをExcelに一括変換したい
複数のcsvファイルをExcelに一括変換したいです。 こちらのサイトを参考にしてVBAを実行しましたが上手く変換できたファイルと上手く行かないファイルがあります。 https://moripro.net/vba-convert-csv-to-excel/ 上手く行かないファイルの名前は以下のように拡張子csvの前に「.dd」などが入っています。 aaa_bbbbb.ccc.dd.csv ファイル名がまずいのはわかりますが、当面仕様上変更できません。 この状態で aaa_bbbbb.ccc.dd.csv を aaa_bbbbb.ccc.dd..xls に一括変換したいのですが、以下のコードのどこを変更したらよろしいでしょうか? Sub main() Application.ScreenUpdating = False Dim OpenFileName As Variant OpenFileName = Application.GetOpenFilename _ ("CSVファイル,*.csv*", MultiSelect:=True) If Not IsArray(OpenFileName) Then MsgBox "キャンセルしました。": Exit Sub End If Dim fso As FileSystemObject Set fso = New FileSystemObject Dim n As Long '選択したファイル数、処理を繰り返す For n = LBound(OpenFileName) To UBound(OpenFileName) Dim wb As Workbook Set wb = Workbooks.Open(OpenFileName(n)) Dim strBaseName As String strBaseName = fso.GetBaseName(wb.Name) '拡張子を除くファイル名を取得 '同じファイル名で同じ階層にExcel形式で保存する wb.SaveAs _ Filename:=wb.Path & "\" & strBaseName, FileFormat:=xlWorkbookDefault wb.Close SaveChanges:=False Set wb = Nothing 'いったん解放 Next n Application.ScreenUpdating = True MsgBox "終了しました。" End Sub
質問日時: 2023/03/03 12:44 質問者: misura12
ベストアンサー
2
0
-
vbaエクセルマクロについて RemoveDuplicatesを使わずに、重複行を削除すらマクロを作
vbaエクセルマクロについて RemoveDuplicatesを使わずに、重複行を削除すらマクロを作りたいです。 次のような処理をしたいです。 RemoveDuplicatesメソッドだと WorkSheet(1).Range("A:Z").RemoveDuplicates Columns:=Array(1, 3),Header:=xlYes このようになります。 この処理をRemoveDuplicatesを使わずに、他のメソッドでマクロを作る方法はありますか?
質問日時: 2023/03/02 22:03 質問者: tomorin_とも
ベストアンサー
3
0
-
vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成
vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成しました。 その.xlsx形式で保存したものを別の仕組みに投入すると処理が実行されます。 内容に不備があると「取り込みできません」というエラーになります。 私が作成したマクロでは、 マクロ1→別のデータを加工し新データを作成 マクロ2→全体をコピーして値で貼り付け マクロ3→RemoveDuplicatesで重複行があれば削除 マクロ4→デスクトップに.xlsx形式で保存 この4つの起動をかけるようになっています。 このマクロでできた.xlsxを仕組みに投入するとエラーが出ることなく、うまくいきます。 ただ、この.xlsx、1度でも上書き保存すると投入時エラーになりうまく処理がされない、という現象が起こります。 (内容を全く変更せず、上書き保存をするだけでエラーになります) そこでいろいろと試したところ、 マクロ1→マクロ2→マクロ4のみで作成すると、上書き保存してもエラーが出ないことがわかりました。 内容を手で直接入力して変更し、上書きしても問題なく処理されます。 しかし、 マクロ3、RemoveDuplicatesのマクロを含む、 1、2、3、4を全て起動して出来上がったものは、そのままだと投入できて処理がはしるのですが、1度でも上書きすると投入できずエラーになってしまいます。 (重複行なくてもです) RemoveDuplicatesメソッドを起動すると 何か変化が起こるのでしょうか。 考えられることを何でもいいので教えていただけますとたすかります。 よろしくお願いいたします。
質問日時: 2023/03/02 18:54 質問者: tomorin_とも
ベストアンサー
2
0
-
VBAで日付入力しているのですが
下記の設定で入力して転記はできているのですが 別sheetで日付検索かけてもヒットしません 日付転記しているsheet1のC列その他別日をN列・Q列・T列・Z列に記載しています 検索条件は合っています、各日付列をデータ→区切り位置→区切り位置指定ウィザードで 日付に変更すると検索にヒットしました コードの設定が間違っているのでしょうか? 正しいコード教えていただけませんか? Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) With Me.TextBox1 If .Value = "" Then .Value = Format(Date, "yyyy/mm/dd") End If If IsNumeric(.Value) Then If IsDate(Format(.Value, "\2\000\/00\/00")) Then .Value = Format(.Value, "\2\000\/00\/00") End If End If End With End Sub
質問日時: 2023/03/02 11:25 質問者: ka-.-ji
解決済
4
0
-
エクセルのマクロについて教えてください。
マクロ有効形式で保存されるタイミングで指定シートの指定セル値を削除できる方法を教えてください。 マクロ Sub 電子提出() Application.DisplayAlerts = False On Error Resume Next Worksheets(Array("記載方法")).Delete Worksheets(Array("提出図書(参考)")).Delete Worksheets(Array("消防の指摘一覧(参考資料)")).Delete Worksheets(Array("Web申請手順(参考)")).Delete Worksheets(Array("申請種別")).Delete Application.Dialogs(xlDialogSaveAs).Show Arg1:="\" & Range("P1").Value, Arg2:=xlOpenXMLWorkbookMacroEnabled Worksheets("提出シート").Activate Range("B1", "H47").Select myBook = ThisWorkbook.Path ActiveWorkbook.SaveAs Filename:=myBook & "\" & Range("P1").Value & "(提出用).xlsx", FileFormat:=xlOpenXMLWorkbook Application.Quit With ThisWorkbook .Saved = True Application.DisplayAlerts = True .Close False End With Sheets("提出シート").Shapes("新築FD").Visible = False ' Sheets("提出シート").Shapes("計変FD").Visible = False ' Sheets("提出シート").Shapes("増築FD").Visible = False ' Sheets("提出シート").Shapes("担当者").Visible = False ' End Sub があります。 マクロを実行すると、不要シートを削除し、指定セル値がファイル名になり マクロ有効形式「.xlsm」と一般の「.xlsx」の2つのファイルで保存されます。 マクロ有効形式「.xlsm」で保存されるタイミングで 指定シート名「提出シート」のセル「D3」「D4」「D7」の文字等の表示を削除できる方法を教えてください。 一般の「.xlsx」は現状のままでお願いいたします。 よろしくお願いいたします。
質問日時: 2023/03/02 08:40 質問者: エクセル小僧
ベストアンサー
4
0
-
ExcelのVBAで教えてほしいです。
いつもお世話になっております。 VBAでこのような事が可能か、お知恵を貸してください。 ある会員券の集計で、グループ毎に1箱MAX150人で整理をしたいです。 輪ゴムで30人分をまとめ、5束が1箱に入るイメージです。 ※見本参照 時間があまりなく、いろいろと調べる時間も才能もない為 何卒ご教示をお願い致します。
質問日時: 2023/03/01 22:16 質問者: famiru730
ベストアンサー
5
0
-
RemoveDuplicatesメソッドについて教えてください。 シート1にシート2から値をもってく
RemoveDuplicatesメソッドについて教えてください。 シート1にシート2から値をもってくるようにしています。 シート1セルが下のようになっています。 A1 =INDEX(Sheet2!A:A,1) A2 =INDEX(Sheet2!A:A,2) A3 =INDEX(Sheet2!A:A,3) B1 =INDEX(Sheet2!B:B,1) B2 =INDEX(Sheet2!B:B,2) B3 =INDEX(Sheet2!B:B,3) この関数が入った状態で、 WorkSheet(1).Range("A:B").RemoveDuplicates Columns:=1, Header:=xlYes を起動し、Aが重複する場合は行を削除します。 A1とA2が重複していて RemoveDuplicatesメソッドで2行目が削除されたとします。 削除された直後、A2セルには =INDEX(Sheet2!A:A,2)、もしくは =INDEX(Sheet2!A:A,3) のどちらが入っているのでしょう。。 うまくいくのでしょうか。 また、行数はそのときによってまちまちなのですが、全ての行を対象にしているので、範囲指定で問題になることはないと考えてよいでしょうか。
質問日時: 2023/02/28 22:43 質問者: tomorin_とも
ベストアンサー
1
0
-
再質問、VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。
昨日解決させていただいた件名内容で、質問したいのですが、サンプルはうまくいきましたが、実際のものに、変えて動かすと、エラーがでます。 エラー内容はあとで送ります。 再度確認なのですが、以前送付いただいた転記部分で、変数iがどうしても、0になり、値が入りません。 もしかして、比較しているws1とws2で、データが無いものが、あれば、エラーになるでしょうか? 実際のものはws1にあって、ws2にないもの、または逆、があります。 何度もすみませんが、よろしくお願い致します。
質問日時: 2023/02/28 15:32 質問者: qazwsx7410
ベストアンサー
9
0
-
VBでExcelの表形式の様なデザインを作りDBと連携させる。
VBでExcelの表形式の様なデザインを作りDBと連携させる 画面を作成したいのですがどのような方法でつくればいいでしょうか? VBの標準で備わっているオブジェクトで画面を作りたいです。 無料のソフトでいいものがあればそれでもかまいませんが 無料でも一般的に使われていない技術でネットで検索しても コーディング方法がヒットしないようなものはだめです。 VBAではなくVBでお願いします。
質問日時: 2023/02/28 11:39 質問者: 39OK
解決済
4
0
-
Excel VBA 転記について
F列にナンバー G列にナンバー H列に都道府県 この状態で、3個飛ばしで転記をしたいのです。 下記のコードを作成しました。 Sub 転記() Dim maxR As Long Dim maxC As Long maxR = Cells(Rows.Count, "F").End(xlUp).Row maxC = Cells(7, Columns.Count).End(xlToLeft).Column j = 8 For i = 8 To maxR Range(Cells(j, "G"), Cells(j, maxC)).Copy Cells(i + 34, 7) j = j + 3 Next i End Sub ↓結果です。 2 青森県 5 秋田県 8 茨城県 11 埼玉県 14 神奈川県 17 石川県 20 長野県 23 愛知県 26 京都府 29 奈良県 32 島根県 8 茨城県 17 石川県 26 京都府 26 京都府 空白 8の茨城1 17の石川県 26の京都府 空白 26の京都府 3個飛ばしで転記はできましたが 下記の 空白 8の茨城1 17の石川県 26の京都府 空白 26の京都府 上記の余計なものが転記されます。 なぜこうなるのか分かりません。 お手数ですが、正しいコードをご教示いただけないでしょうか? よろしくお願いします。
質問日時: 2023/02/28 08:34 質問者: naonaokeikei
ベストアンサー
2
0
-
vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使
vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使って重複する行を削除するマクロを組んで、あるデータを作成します。 シート1のA1セルに、シート2のA1セルを、 シート1のA2セルに、シート2のA2セルを、 ・ ・ ・ シート1のB1セルに、シート2のB1セルを、 シート1のB2セルに、シート2のB2セルを、 ・ ・ ・ というように、シート1にシート2の値をもってくるように、シート1のセルにINDEX関数を入れています。 マクロでRemoveDuplicatesメソッドで シート1のA列とB列ともが、他の行と重複している場合は行削除を行い、 最後にシート1の全体をコピーして値の貼り付けをして マクロ終了でデータ作成完了としています。 そこで質問なのですが、 シート1のセルに INDEX関数を設定しているのに、 値の貼り付けをする前にRemoveDuplicatesメソッドで重複行の削除を行うと おかしくならないでしょうか。
質問日時: 2023/02/28 01:13 質問者: tomorin_とも
ベストアンサー
3
0
-
vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使
vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使って重複する行を削除するマクロを組んで、あるデータを作成しています。 シート1のA1セルには「=sheet2!A1」、 同様にA2セルは「=sheet2!A2」 ・ ・ ・ B1セル「=sheet2!B1」 B2セル「=sheet2!B2」 ・ ・ ・ と入っていて、シート2の値をシート1にもってくるようにしています。 マクロでRemoveDuplicatesメソッドで シート1のA列とB列ともが、他の行と重複している場合は行削除を行い、 最後に全体をコピーして値の貼り付けをして マクロ終了でデータ作成完了としています。 そこで質問ですが、 RemoveDuplicatesメソッド(重複行削除)は、値の貼り付けをする前に起動させるのがよいのか、 それとも後がよいのか、 前と後でどのような違いが出てくるのか、 教えてほしいです。 セルに式が入った状態で起動させるとおかしくなるでしょうか。 値にして起動させないといけないものでしょうか。。
質問日時: 2023/02/27 22:21 質問者: tomorin_とも
ベストアンサー
1
0
-
vbaエクセルマクロ RemoveDuplicatesについて 重複したものがあれば行を削除するとい
vbaエクセルマクロ RemoveDuplicatesについて 重複したものがあれば行を削除するというプログラムでRemoveDuplicatesを使ってマクロを組んでいます。 重複したものがないとわかっているときにRemoveDuplicatesマクロを起動せずに作成したデータと RemoveDuplicatesマクロを起動させて作成したデータを (見た目は全く同じもの) ある仕組みに投入したところ、 両方ともうまく処理が実行できます。 しかし、それぞれ全く同じ場所のある一つのセルを手入力で変更して投入すると 起動せずに作成したものではうまく処理が実行になるのに、起動させて作成したほうではエラーになり処理が実行できません。 重複したものがあれば削除してね、というマクロなので、重複したものがないとき RemoveDuplicatesを起動しても、しなくても、全く同じデータになると思っているのですが、何かが変わってしまうのでしょうか。 思い当たることありましたら何でもいいので教えてください。
質問日時: 2023/02/27 18:49 質問者: tomorin_とも
ベストアンサー
1
0
-
ベストアンサー
3
0
-
VB.netを実行するとデバック プロファイルに指定したデバック実行ファイルが存在しません。とエラー
VB.netを実行するとデバック プロファイルに指定したデバック実行ファイルが存在しません。とエラーメッセージが出ます。どうしたら改善できますでしょうか?
質問日時: 2023/02/27 10:48 質問者: あっきー126
ベストアンサー
2
0
-
VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。
転記のVBAで現在作成しているコードに、さらに条件を追加させたいコードがあり、どう書けばいいか分かりませんのですみませんが、教えて下さい。 現在記入している内容、及びコードは下記の通りです。 《内容》 ①転記先のA,E,F,H,I列初期化 ②転記先の最終行を取得 ③転記元と転記先の車種が一致していれば、車種数を確認 ④転記先の車種が何処の行にあるか確認 ⑤転記先に貼り付ける車種の種類で1行間隔をあける ⑥転記元から、転記先へ同じ車種の場所に製造NOを転記 ※転記する場所は、転記元、転記先共に同じ項目で、転記先のE,F,H列になります。 ※転記する転記元のC,D,F列で、C列は番号が若い者順になっており、必ず番号の若い物から転記します。 《VBAコード》 Sub 転記() Dim 車種行 As Long Dim 転記元車種行 As Long Dim 転記元車種数 As Long Dim 転記元 As Worksheet Dim 転記先 As Worksheet Application.ScreenUpdating = False Set 転記元 = Sheets("在庫一覧") Set 転記先 = Sheets("まとめ") 転記先.Select 転記先.Range(Cells(6, 1), Cells(9999, 1)).ClearContents 転記先.Range(Cells(6, 5), Cells(9999, 6)).ClearContents 転記先.Range(Cells(6, 8), Cells(9999, 9)).ClearContents With 転記元 For 車種行 = 転記先.Cells(Rows.Count, 2).End(xlUp).Row To 6 Step -1 転記元車種数 = Application.CountIf(.Range("A:A"), 転記先.Cells(車種行, 2)) 転記元車種行 = Application.Match(転記先.Cells(車種行, 2), .Range("A:A"), 0) 転記先.Rows(車種行 + 1 & ":" & 車種行 + 転記元車種数).Insert 転記先.Cells(車種行, 5).Resize(転記元車種数, 3) = 転記元.Cells(転記元車種行, 3).Resize(転記元車種数, 3).Value 転記先.Cells(車種行, 8).Resize(転記元車種数, 6) = 転記元.Cells(転記元車種行, 6).Resize(転記元車種数, 6).Value Next End With Application.ScreenUpdating = True End Sub 上記のコードは単に転記元から転記先に、車種が一致していれば、その車種があるだけ1行開けて、製造NOを転記しているだけになります。 このコードに下記の条件を入れるにはどういうコードを入れれば良いでしょうか? ≪教えていただきたい条件のVBAコード≫ 転記後、まとめシートで、それぞれの車種において、D列=必要重量とF列=部品重量が同じ、かつF列=部品重量が±10%以内、かつH列=不良品が"不良"以外の物であれば、A列=状態に"○"を付ける。"○"以外は"他"と入力し、かつI列=結果に"なし"と入力する。これらの条件に合わない場合は、転記したE,F,H列のデータをD列=必要重量に合う様に、行間で入れ替える。 詳細は画像を参照ください。 すみませんが、宜しくお願い致します。
質問日時: 2023/02/26 09:31 質問者: qazwsx7410
ベストアンサー
13
1
-
ブックのCOPY
いつもお世話になっております Bというブックを開いて 標準モジュールで下記のコードを実行すると 今、開いているBのワークブックが Aというファイルに変更になってしまいます。 Bのワークブックの名前のままで おわることはできないのでしょうか str = "C:\test\A" ActiveWorkbook.SaveAs Filename:=str, FileFormat:=xlCSV
質問日時: 2023/02/25 20:17 質問者: りんごプリン
ベストアンサー
4
1
-
Excel VBAで並べ替えをしたい
Excel VBAについて Sub mysort降順() Dim mykey As Range Dim myrug As Range Set myrug = Range("C2:E17") Set mykey = myrug.Columns(3) Set myrug = 並べ替え(myrug, mykey) End Sub Function 並べ替え降順(myrug As Range, mykey As Range) As Range Dim sorttest As Worksheet ' ソート対象のオブジェクトを指定 Set sorttest = ActiveSheet With sorttest.Sort .SortFields.Clear .SortFields.Add Key:=mykey, _ SortOn:=xlSortOnValues, _ Order:=xlDescending, _ DataOption:=xlSortNormal .SetRange myrug .Apply ' ソート実行 End With End Function このコードを利用して、降順でソートをかけたいのです。 昇順はできます。 ↓のように変更しました。 Function 並べ替え降順(myrug As Range, mykey As Range) As Range Dim sorttest As Worksheet ' ソート対象のオブジェクトを指定 Set sorttest = ActiveSheet With sorttest.Sort .SortFields.Clear .SortFields.Add Key:=mykey, _ SortOn:=xlSortOnValues, _ Order:=xlDescending, _ DataOption:=xlSortNormal .SetRange myrug .Apply ' ソート実行 End With End Function 降順になりません。 降順のコードは、どこに仕込むのか、お手数ですがご、教示をお願いします。
質問日時: 2023/02/25 09:31 質問者: naonaokeikei
ベストアンサー
3
0
-
ベストアンサー
3
0
-
VBA リストボックス複数選択からセルへの反映についての質問です。 リストボックス1では1つ選択 リ
VBA リストボックス複数選択からセルへの反映についての質問です。 リストボックス1では1つ選択 リストボックス2でも1つ選択 リストボックス3で4つ選択し リストボックス3で選択した4つは表示できるが リストボックス1と2も追従して4つ表示されるようにするにはどのようなコードを書けばよろしいのでしょうか?
質問日時: 2023/02/24 12:51 質問者: ととた
解決済
6
1
-
このプログラムなんですがsheetにデータを置いて表示できるようにしてありますがsheetに101を
このプログラムなんですがsheetにデータを置いて表示できるようにしてありますがsheetに101をおいてコマンドボタンを押すとエラーになります。対処方法を教えてください。
質問日時: 2023/02/23 20:13 質問者: kanatadatesama
ベストアンサー
2
0
-
ユーザーフォームに日付を表示させる方法を教えてください。そして、実行したあとでも日付が変わるようなプ
ユーザーフォームに日付を表示させる方法を教えてください。そして、実行したあとでも日付が変わるようなプログラムを教えてください。VBAを使用しています
質問日時: 2023/02/23 12:18 質問者: kanatadatesama
解決済
4
1
-
コマンドボタンを押すとメッセージを表示させて音が鳴る形にしたいのですがいいのありますか? 簡単な説明
コマンドボタンを押すとメッセージを表示させて音が鳴る形にしたいのですがいいのありますか? 簡単な説明ですみません。
質問日時: 2023/02/23 10:13 質問者: kanatadatesama
解決済
2
0
-
解決済
2
0
-
VBAをやっていますが初心者でもわかる料金が無料なサイトなどありますか?
VBAをやっていますが初心者でもわかる料金が無料なサイトなどありますか?
質問日時: 2023/02/22 15:45 質問者: kanatadatesama
解決済
3
0
-
標準モジュール Public mOnTime As Date Sub sample() '実行プロシ
標準モジュール Public mOnTime As Date Sub sample() '実行プロシージャ UserForm1.Show vbModeless UserForm1.Repaint End Sub Sub TimerProc() UserForm1.Label1.Caption = _ Format(Now(), "yyyy年mm月dd日aaaa") & vbCrLf & Format(Now(), "hh:nn:ss") End Sub Sub OnTimeStart() Call TimerProc mOnTime = Now() + TimeSerial(0, 0, 1) Call Application.OnTime(mOnTime, "OnTimeStart") End Sub Sub OnTimeStop() On Error Resume Next Call Application.OnTime(mOnTime, "OnTimeStart", , False) End Sub フォームモジュール(UserForm1)Label1コントロール配置必須 Private Sub UserForm_Initialize() Call OnTimeStart End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Call OnTimeStop End Sub このコードなんですがうまくいきません。
質問日時: 2023/02/22 15:44 質問者: kanatadatesama
解決済
1
0
-
打刻画面で日付や時計をずっと表示させて更新し続ける方法はありますか?
打刻画面で日付や時計をずっと表示させて更新し続ける方法はありますか?
質問日時: 2023/02/22 14:37 質問者: kanatadatesama
解決済
3
0
-
このような形で現在時刻と現在日付をずっと表示させる方法を教えていただけますか?詳しくお願いします。
このような形で現在時刻と現在日付をずっと表示させる方法を教えていただけますか?詳しくお願いします。
質問日時: 2023/02/22 11:40 質問者: kanatadatesama
解決済
3
0
-
Application.Dialogs(xlDialogFileDelete).Showの件
いつも大変お世話になります。 表題の組み込みダイアログ?で複数選択してファイルを削除したいのですが、この場合は複数選択は無理という認識が合ってますでしょうか?もし可能であればご教示頂ければうれしいです。どうかよろしくお願い致します。
質問日時: 2023/02/22 10:02 質問者: 太郎です
ベストアンサー
1
0
-
エクセルのマクロについて教えてください。
マクロを実行時に「名前を付けて保存」のダイナログが開き「保存(S)」をクリックしてファイルを保存しておりますが、 マクロコードを利用してダイナログが開いたタイミングで「保存(S)」を自動でクリックできる方法があれば教えてください。 保存フォルダ先とファイル名がマクロで設定出来ている為、クリックを押す手間を省きたいのが目的です。 下記のマクロを変更出来ればしたいです。 Sub 行政報告2() Application.ScreenUpdating = False Dim folder As String folder = "\\Nas-sp01\share\確認部\行政報告フォルダ\☆確認済交付月別物件(完了検査対象)\" & Worksheets("300").Range("A41").Text & " 【担当】確認番号 建物名称\" & Worksheets("300").Range("A43").Text & "\" Dim initName As String initName = folder & Worksheets("1").Range("X1").Value newName = Application.GetSaveAsFilename(InitialFileName:=initName, FileFilter:="Excel マクロ有効ブック(*.xlsm), *.xlsm") If newName = False Then Exit Sub ThisWorkbook.SaveCopyAs newName Workbooks.Open newName Dim ws As Worksheet Dim TargetCheck As String Dim List As Variant Dim i As Long Dim Chk As Boolean List = Array("休日", "受付", "管理表") For Each ws In Worksheets Chk = False If ws.Visible = False Then For i = 0 To UBound(List) If ws.Name = List(i) Then Chk = True Exit For End If Next i If Chk = False Then TargetCheck = TargetCheck & ws.Name & vbCrLf Application.DisplayAlerts = False ws.Delete Application.DisplayAlerts = True End If End If Next ws ActiveWorkbook.Close SaveChanges:=True Application.ScreenUpdating = True End Sub よろしくお願いいたします。
質問日時: 2023/02/22 08:53 質問者: エクセル小僧
ベストアンサー
3
0
-
ユーザーフォーム上に現在日時と時刻を表示させていますが、実行後、現在時刻が変わるようにしたいのです。
ユーザーフォーム上に現在日時と時刻を表示させていますが、実行後、現在時刻が変わるようにしたいのです。
質問日時: 2023/02/21 22:44 質問者: kanatadatesama
解決済
1
0
-
ユーザーフォーム上に現在日時と時刻を表示させていますがフォームを実行すると時間が更新されません。それ
ユーザーフォーム上に現在日時と時刻を表示させていますがフォームを実行すると時間が更新されません。それをずっと更新される形にしたいです。ラベルを使用しています。
質問日時: 2023/02/21 22:28 質問者: kanatadatesama
解決済
2
0
-
先ほど、回答者様によって教えていただいたのですがどうしたらいいか分かりません。 ユーザーフォーム上に
先ほど、回答者様によって教えていただいたのですがどうしたらいいか分かりません。 ユーザーフォーム上に社員番号を打つと名前が表示される形の方法はありますか? Private Sub txtEmpNo_AfterUpdate() Dim empNo As String Dim empName As String ' 社員番号を取得 empNo = txtEmpNo.Value ' 社員番号に対応する名前を取得 empName = GetEmpName(empNo) ' 名前をラベルに表示 lblEmpName.Caption = empName End Sub Function GetEmpName(empNo As String) As String ' 社員番号に対応する名前を取得する処理を実装 ' ここでは仮に固定の名前を返す例を示す Select Case empNo Case "001" GetEmpName = "山田太郎" Case "002" GetEmpName = "佐藤花子" Case "003" GetEmpName = "鈴木次郎" Case Else GetEmpName = "該当者なし" End Select End Function このコード必要なツールは何ですか。具体的に教えていただけるととても助かります。回答の程宜しくお願いします。
質問日時: 2023/02/21 22:25 質問者: kanatadatesama
解決済
2
0
-
ユーザーフォーム上に社員番号を打つと名前が表示される形の方法はありますか?
ユーザーフォーム上に社員番号を打つと名前が表示される形の方法はありますか?
質問日時: 2023/02/21 21:14 質問者: kanatadatesama
解決済
1
0
-
ユーザーフォーム上に現在日時と時刻を表示させたいのですが構文エラーになります。ラベルを使ってます。
ユーザーフォーム上に現在日時と時刻を表示させたいのですが構文エラーになります。ラベルを使ってます。
質問日時: 2023/02/21 21:12 質問者: kanatadatesama
解決済
1
0
-
ExcelVBAについて
テーブル上のセルをダブルクリックして ⚪︎×を切り替えたいです。 どのようなコードにすれば良いですか?
質問日時: 2023/02/21 21:00 質問者: m0m_m0m
解決済
2
0
-
データベースから絞り込んでデータを読み込み
VBAで以下のコードを使い、「T_MAS」テーブルから「IDNO」, 「STATUS」, 「DATE」のフィールドをエクセルシートに取り込んでいます。 これは私の前任者が作成したもので、それに私が「DATE」のフィールドも追加するために作っている作りかけです。 Public Sub DB読込() Dim i%, SQL$, vRow% Dim vL&, vS$ SQL = "SELECT IDNO, STATUS, DATE" SQL = SQL & " FROM T_MAS" Call DbOpen With Sheet2 vRow = 2 .Range(.Cells(vRow, 4), .Cells(vRow + 15000, 5)).ClearContents .Range(.Cells(vRow, 4), .Cells(vRow + 15000, 5)).ClearContents Set Rs.ActiveConnection = Conn Rs.Open SQL, Conn For i = 1 To 2 Step 0 If Rs.EOF Then Exit For vL = IIf(IsNull(Rs![IDNO].Value), 0, Rs![IDNO].Value) .Cells(vRow, 4) = vL vS = IIf(IsNull(Rs![Status].Value), 0, Rs![Status].Value) .Cells(vRow, 5) = vS vT = IIf(IsNull(Rs![DATE].Value), "", Rs![DATE].Value) .Cells(vRow, 6) = vT Rs.MoveNext vRow = vRow + 1 If vRow > 100 Then Exit For Next i Rs.Close Set Rs = Nothing End With Call DbClose End Sub 「IDNO」は6桁の数字です。 「STATUS」は1~9の数字です。 「DATE」は2023/02/21といった日付です。 DbOpenとDbCloseは別コードを使用しています。 ①これらに2つ条件を付けたいのです。 「DATE」は2021年から2023年までの間 「STATUS」は数字の3に絞ったものを読み込みたいです。 2データ量は数万になりますがそのまま読み込むとオーバーフローになります。 If vRow > 100 Then Exit For を挿入していますが、実際は全てのデータが必要です。 このオーバーフローを出さない対策もしたいです。 お詳しい方教えてください、宜しくお願い致します。
質問日時: 2023/02/21 19:51 質問者: さわ子
ベストアンサー
1
0
-
VBAでファイルを開くプログラムがエラーです
VBA初心者です。ダイアログを開いてファイルをオープンしようとして、ネットのサンプルソースを少しいじってみたのですがエラーが出ます。 Workbooks.Open OpenFileName の行を set wb = Workbooks.Open OpenFileName に変えてみたのですが、この行が赤い表示で、setが認識せずSが大文字になりません。 以下がエラー(コンパイルエラー、構文エラー)になっているソースです。 どこを変更すれば動くようになるのでしょうか。 よろしくお願い申し上げます。 ---------- Sub Sample() Dim wb As Workbook Dim OpenFileName As String OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls?") If OpenFileName <> "False" Then set wb = Workbooks.Open OpenFileName End If End Sub
質問日時: 2023/02/21 16:56 質問者: hgama1024
ベストアンサー
2
0
-
エクセル VBA 難しいです
こんにちは、以下のコードはC6セルにある文字を同じかどうか判断して、C6、G6、H6の条件が合致したらSheet2に転記するコードです。 それで、3点教えて頂きたいのですが ■1点目 条件が合致した場合、このコードでは書式なども転記されるので、値のみ転記したい ■2点目 このコードではこのコードを実行した時に以下であるかを判定し転記すると思います そうではなくて、常時実行しておいて条件が揃えば実行するに変更 ■3点目 C6に何も入ってなければ無視するというコードを追加 以上3点 詳しい方、よろしくお願いします。 ********************** Sub 転記() Dim wsA As Worksheet Dim wsB As Worksheet Dim lastRow As Long Set wsA = ThisWorkbook.Sheets("Sheet1") Set wsB = ThisWorkbook.Sheets("Sheet2") If wsA.Range("C6").Value = "価格" And (wsA.Range("F6").Value >= wsA.Range("G6").Value Or wsA.Range("F6").Value <= wsA.Range("H6").Value) Then lastRow = wsB.Cells(wsB.Rows.Count, "B").End(xlUp).Row + 1 ' find next available row in column B of SheetB wsA.Range("B6:M6").Copy Destination:=wsB.Range("B" & lastRow) ' copy values from SheetA B6:M6 to SheetB last available row wsA.Range("B6:I6,L6:M6").ClearContents ' clear values from B6:I6 and L6:M6 on SheetA ElseIf wsA.Range("C6").Value = "状態" And (wsA.Range("F6").Value <= wsA.Range("G6").Value Or wsA.Range("F6").Value >= wsA.Range("H6").Value) Then lastRow = wsB.Cells(wsB.Rows.Count, "B").End(xlUp).Row + 1 ' find next available row in column B of SheetB wsA.Range("B6:M6").Copy Destination:=wsB.Range("B" & lastRow) ' copy values from SheetA B6:M6 to SheetB last available row wsA.Range("B6:I6,L6:M6").ClearContents ' clear values from B6:I6 and L6:M6 on SheetA End If End Sub
質問日時: 2023/02/21 15:39 質問者: gekikaraou
ベストアンサー
1
0
-
VBA*セルに値があればシート名に反映
VBA初心者の初心者です。 見よう見真似で作成しています。 以下のVBAに足したいことがあり質問させていただきます。 セルに値があればシート名に反映するように設定しています。 シート1を集計用にしているのですが塗り替えられてしまって困っています。 シート1は除外で…という構文を足したいのですが思いつきません。 助けてください…(>_<) Sub test() Dim i As Long For i = 1 To Worksheets.Count Worksheets(i).Name = i & Worksheets(i).Cells(1, 1).Value Next i End Sub
質問日時: 2023/02/21 14:52 質問者: Kubotaさん
解決済
2
0
-
エクセルのマクロについて教えてください。
マクロを実行して新しいファイル名で保存したブックがクローズする方法を教えてください。 マクロ Sub Macro1() Dim FolderPath As String Dim FileName As String ' フォルダとファイル名を指定 FolderPath = "\\Nas-sp01\share\確認部\行政報告フォルダ\☆確認済交付月別物件(完了検査対象)\" & Worksheets("300").Range("A41").Text & " 【担当】確認番号 建物名称\" & Worksheets("300").Range("A43").Text & "\" FileName = Worksheets("1").Range("X1").Text & ".xlsm" ' 上書き保存 ThisWorkbook.Save ' 指定したフォルダとファイル名に保存 Application.DisplayAlerts = False ThisWorkbook.SaveAs FileName:=FolderPath & FileName, FileFormat:=xlOpenXMLWorkbookMacroEnabled Application.DisplayAlerts = True End Sub があります。 作業ブックの作業が完了し、マクロを実行すると指定フォルダ先に指定セル値をファイル名で保存され、作業ブックが上書き保存されて作業ブックは開いたままの状態です。 新しいファイル名で保存されたファイルがクローズされておらず、開いたままの状態の為、その後、作業ブックを追加作業して違うマクロを実行して作業ブックを保存すると 先の新しいファイルに上書き保存(ファイル名共)されてしまします。 新しく保存されたファイルを完全にクローズできる方法を教えてください。 宜しくお願い致します。
質問日時: 2023/02/21 11:19 質問者: エクセル小僧
ベストアンサー
1
0
-
vbaエクセルマクロについて教えてください A列とD列が下のようになっています B列、C列にも何かし
vbaエクセルマクロについて教えてください A列とD列が下のようになっています B列、C列にも何かしらの値が入っています Aマート りんご Bマート みかん Cマート ぶどう Bマート りんご Aマート りんご Dマート もも Bマート みかん Aマート もも Dマート みかん Cマート もも Dマート もも これを、 Aマート りんご Bマート みかん Cマート ぶどう Bマート りんご Aマート りんご→削除 Dマート もも Bマート みかん→削除 Aマート もも Dマート みかん Cマート もも Dマート もも →削除 Aマート りんご→削除 A列、D列ともが重複している場合 重複行を削除して Aマート りんご Bマート みかん Cマート ぶどう Bマート りんご Dマート もも Aマート もも Dマート みかん Cマート もも このように1行ずつの表示にしたいときは、 どのようなプログラムになりますでしょうか。
質問日時: 2023/02/20 20:06 質問者: tomorin_とも
ベストアンサー
2
0
-
3個のfileのセルデータを1個のfileのセルに貼り付けるVBAコードですが。
E:\01 65-66まで繰下げと従業員\01-2022-61にあるファイル名2022-61 E:\01 65-66まで繰下げと従業員\01-2023-62にあるファイル名2023-62 E:\01 65-66まで繰下げと従業員\02-2024-63にあるファイル名2024-63 ファイル名2022-61のシート名202261のcells(58,4) ファイル名2023-62のシート名202362のcells(54,4) ファイル名2024-63のシート名202463のcells(55,4) これら3個のファイルの各々のセル値を c:users\toshihiro\Desktop\VBA100\616263にあるファイル名616263 に貼り付けたいです。具体的には 2022-61のシート名202261のcells(58,4)数値を616263のcells(2,1)に 2023-62のシート名202362のcells(54.4)数値を616263のcells(2.2)に 2024-63のシート名202463のcells(55,4)数値を616263のcells(2,3)に それぞれ貼り付けるVBAコード次項に表記します。 結果 Sub CopyValuesToMaster() Dim masterFile As Workbook Dim dataFile1 As Workbook Dim dataFile2 As Workbook Dim dataFile3 As Workbook Dim masterFilePath As String Dim dataFilePath1 As String Dim dataFilePath2 As String Dim dataFilePath3 As String masterFilePath = "C:\Users\toshihiro\Desktop\VBA100\616263.xlsx" Set masterFile = Workbooks.Open(masterFilePath) dataFilePath1 = "E:\01 65-66まで繰下げと従業員\01-2022-61\2022-61.xlsx" Set dataFile1 = Workbooks.Open(dataFilePath1) Set datasheet1 = dataFile1.Sheets("202261") dataFilePath2 = "E:\01 65-66まで繰下げと従業員\01-2023-62\2023-62.xlsx" Set dataFile2 = Workbooks.Open(dataFilePath2) Set datasheet2 = dataFile2.Sheets("202362") dataFilePath3 = "E:\01 65-66まで繰下げと従業員\02-2024-63\2024-63.xlsx" Set dataFile3 = Workbooks.Open(dataFilePath3) Set datasheet3 = dataFile3.Sheets("202463") masterFile.Sheets("Sheet1").Cells(2, 1).Value = datasheet1.Cells(58, 4).Value masterFile.Sheets("Sheet1").Cells(2, 2).Value = datasheet2.Cells(54, 4).Value masterFile.Sheets("Sheet1").Cells(2, 3).Value = datasheet3.Cells(55, 4).Value dataFile1.Close SaveChanges:=False dataFile2.Close SaveChanges:=False dataFile3.Close SaveChanges:=False masterFile.Save masterFile.Close End Sub と出来たのですが、赤✖400となりエラーなのです、修正箇所と 修正後の完成VBAコードをお教えください。 2022-61,2023-62,2024-63これらファイルは、外付けUSBメモリに保存されていて、616263ファイルはパソコンのデスクトップに保存されています。 どうかよろしくお願いいたします
質問日時: 2023/02/20 09:21 質問者: 7718toshi
ベストアンサー
1
0
-
①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。
ユーザーフォームfrmMedicalInfoEntryに日付入力用のテキストボックスtxtDateとコマンドボタンbtnDispCalenderと配置して、カレンダーユーザーフォームfrmCalenderで作った、カレンダーから日付を入力するため、クラスモジュールclsCalenderにコードを以下のとおり追加して、実行しようとすると、「変数arryClass(c)が定義されていません」とエラーメッセージが出てプロシージャが止まってしまいます。何処が間違っているのでしょうか?ちなみに「’」のところはカレンダーが表示されないのでコメントアウトしているところです。なお、字数がオーバーするので、同一質問②で送ります。よろしくご教授ください。 ①frmCalenderのコードは以下のとおりです。 Private arrayClass() As New clsCalender 'Public EntryControl As String 'Public RarentForm As UserForm Private Sub cmbMonth_Change() If CheckParam() Then makeCalender cmbYear.Value, cmbMonth.Value End If End Sub Private Sub cmbYear_Change() If CheckParam() Then makeCalender cmbYear.Value, cmbMonth.Value End If End Sub Private Sub SpinButton1_SpinDown() If cmbMonth.Value = 1 Then cmbMonth = 12 cmbYear.Value = cmbYear - 1 Else cmbMonth = cmbMonth - 1 End If End Sub Private Sub SpinButton1_SpinUp() If cmbMonth.Value = 12 Then cmbMonth = 1 cmbYear.Value = cmbYear + 1 Else cmbMonth = cmbMonth + 1 End If End Sub Private Sub UserForm_Initialize() Dim lbl As MSForms.Label Dim i As Integer, j As Integer, c As Integer Dim arrayClass() As Variant Dim Weekdays() As Variant 'データ型に注意 Weekdays() = Array("日", "月", "火", "水", "木", "金", "土") For i = 1 To 7 Set lbl = Me.Controls.Add("Forms.Label.1", , True) With lbl .Caption = Weekdays(i - 1) .Width = 15 .Height = 15 .Left = 5 + (.Width + 2) * (i - 1) .Top = 20 .BorderColor = &H666666 .BorderStyle = fmBorderStyleSingle .Font.Size = 11 End With Next c = 1 For i = 1 To 6 '縦方向 For j = 1 To 7 '横方向 Set lbl = Me.Controls.Add("Forms.Label.1", , True) With lbl .Width = 15 .Height = 15 .Left = 5 + (j - 1) * (.Width + 2) .Top = 20 + i * (.Height + 2) .BorderColor = &H666666 .BorderStyle = fmBorderStyleSingle .Font.Size = 11 .TextAlign = fmTextAlignRight .Name = "D" & c ' ReDim Preserve arryClass(c) ' arrayClass(c).NewCalender lbl, Me c = c + 1 End With Next Next For i = Year(Date) - 3 To Year(Date) + 3 cmbYear.AddItem i Next For i = 1 To 12 cmbMonth.AddItem i Next 'コンボボックスに値を代入すると、Changeイベントが発生する cmbYear.Value = Year(Date) cmbMonth.Value = Month(Date) 'Public変数の呼び出し元のフォームを格納 ' Set ParentForm = frmMedicalInfoEntry End Sub Sub makeCalender(Nen As Integer, Tsuki As Integer) Dim i As Integer, c As Integer Dim WeekDay_of_firstday As Integer Dim lastDay As Integer Dim myDate As Date 'ラベルの表示をクリア For i = 1 To 42 Controls("D" & i).Caption = "" Next c = 1 WeekDay_of_firstday = getWeeekday1st(Nen, Tsuki) lastDay = Day(DateSerial(Nen, Tsuki + 1, 1) - 1) - 1 For i = WeekDay_of_firstday To WeekDay_of_firstday + lastDay Controls("D" & i).Caption = c Controls("D" & i).Tag = CStr(DateSerial(Nen, Tsuki, c)) Controls("D" & i).ForeColor = vbBlack c = c + 1 Next '前月の日付の設定 myDate = DateSerial(Nen, Tsuki, 1) - 1 c = Day(myDate) For i = WeekDay_of_firstday - 1 To 1 Step -1 Controls("D" & i).Caption = c Controls("D" & i).Tag = CStr(DateSerial(Year(myDate), Month(myDate), c)) Controls("D" & i).ForeColor = RGB(100, 100, 100) c = c - 1 Next '来月の日付の設定 myDate = DateSerial(Nen, Tsuki + 1, 1) c = 1 For i = WeekDay_of_firstday + lastDay + 1 To 42 Controls("D" & i).Caption = c Controls("D" & i).Tag = CStr(DateSerial(Year(myDate), Month(myDate), c)) Controls("D" & i).ForeColor = RGB(100, 100, 100) c = c + 1 Next End Sub
質問日時: 2023/02/17 18:39 質問者: asahina316
ベストアンサー
1
0
-
ExcelデータをVB.netで検索する方法
ExcelにあるデータをVB.netで検索し、出力するプログラムが わからず困っています
質問日時: 2023/02/17 15:41 質問者: rikutoto05
ベストアンサー
2
0
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
【Visual Basic(VBA)】に関するコラム/記事
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでCOPYを繰り返すと、処理が途中...
-
vba textboxへの入力について教えて...
-
Vba セルの4辺について罫線が有るか...
-
複数のExcelファイルをマージするマ...
-
vbsでのwebフォームへの入力制限?
-
VBAでセルの書式を変えずに文字列を...
-
Vba Array関数について教えてください
-
【マクロ】開いているブックの名前...
-
改行文字「vbCrLf」とは
-
【ExcelVBA】5万行以上のデータ比...
-
【マクロ】売上一覧YYYYMMDDHHSS.xl...
-
エクセルのマクロについて教えてく...
-
Vba FileSystemObject オブジェクト...
-
エクセルのマクロについて教えてく...
-
【ExcelVBA】値を変更しながら連続...
-
【マクロ】シートの変数へ入れるコ...
-
【マクロ】並び替えの範囲が、その...
-
vb.net(vs2022)のtextboxのデザイン...
-
エクセルのVBAコードと数式について...
-
【マクロ】値を渡されたプロシージ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vba Array関数について教えてください
-
VBAでCOPYを繰り返すと、処理が途中...
-
【ExcelVBA】5万行以上のデータ比...
-
【マクロ】シートの変数へ入れるコ...
-
vbsでのwebフォームへの入力制限?
-
エクセルのマクロについて教えてく...
-
【マクロ】並び替えの範囲が、その...
-
Vba セルの4辺について罫線が有るか...
-
【マクロ】売上一覧YYYYMMDDHHSS.xl...
-
VBAでユーザーフォームを指定回数繰...
-
【マクロ】開いているブックの名前...
-
エクセルの改行について
-
vb.net(vs2022)のtextboxのデザイン...
-
エクセルのVBAコードと数式について...
-
算術演算子「¥」の意味について
-
Excelのマクロについて教えてくださ...
-
改行文字「vbCrLf」とは
-
ワードの図形にマクロを登録できる...
-
VBAの「To」という語句について
-
【マクロ】変数を使った、文字の種...
おすすめ情報