回答数
気になる
-
VBAでユーザーフォームを指定回数繰り返して入力を行う方法
ユーザーフォームを使用して指定した回数分(n回)、ユーザーフォーム内の数値のデータをセルに入力をさせたいのですが、上手く動作せず無限に繰り返してしまいます。 例として、ユーザーフォーム1のtxb1に3を入力し実行、ユーザーフォーム2を表示してtxb1-7に数値データを入力して1回反映させた後、ユーザーフォーム2のtxbをクリアして2~3回目も同様な動作をさせるようにしたいです。 Sub 実行() Dim i as Integer, n as Integer i=1 n=userform1.txb1.value If i>n Then Exit Sub Else i=i+1 ActiveCells.value=userform2.txb1.value 右に1マスずらしtxbの数値を反映する同様な処理のため省略 Unload Userform2 Userform2.show Userform2.txb1.setfocus End if End sub 当方、VBA初心者の為勉強をしながら作成をしているのですが、どこを正せば上手く動くのか分からないためお教えいただきたいです。
質問日時: 2025/01/22 14:12 質問者: ぺんぎn
回答受付中
2
0
-
VBAについてです。 データのチェックシートを作成しています。 シート名に特定の文字、(チェ)がある
VBAについてです。 データのチェックシートを作成しています。 シート名に特定の文字、(チェ)があるシートが複数あります。 そのシートを対象として、G2→A、H2→B、I2→C…と 各セルにアルファベットが入力されています。 ※列数は毎回ランダム。 そして、各アルファベットの列ごとに3行目から最終行まで1以上の数字が並んでいるのですが、その数字の「データ個数」を読み込んだ各列の最終行に太字で表示させたいです。 どなたかご教示いただけないでしょうか。
質問日時: 2025/01/21 15:38 質問者: Kshfjssjashdj
回答受付中
5
0
-
Excelのマクロについて教えてください。
下記のマクロをVBAコードで設定していますが、 何故か、同じマクロが2回程度実行されます。 このマクロを作業中に「1回」だけ実行するように出来る方法があれば、教えてください。 コード Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next On Error Resume Next If Not Intersect(Target, Range("$K$5").Text) Is Nothing Then If Range("K$5").Value = "手続き必要" Then Call 省エネ方法 End If End If End Sub マクロ Sub 省エネ方法() Dim alert n = Application.InputBox("省エネ方法を番号で入力で入力してください。" & vbCr & " " & vbLf & "1: 省エネ適判" & vbLf & "2: 仕様基準", Title:="省エネ提出方法確認", Type:=1) If n = 1 Then Call 省エネ適判 ElseIf n = 2 Then Call 仕様基準 End If End Sub 以上となります。 よろしくお願いします。
質問日時: 2025/01/21 13:26 質問者: エクセル小僧
ベストアンサー
1
0
-
ExcelのVBAコードについて教えてください。
作業シートに下記のコードを設定しております。 ExcelのVersionはoffice365になります。 指定セルD6に「3月」と表示するとマクロ「増築3月31日以前図表示」 が実行されます。 このコードを セルD6に書式設定を「yyyy"年"m"月"d"日";@」として 2025年3月31日以前の場合にマクロ「増築3月31日以前図表示」を実行できる方法を教えてください。 例えば 2025年1月21日と表示されるとマクロが実行 2025年4月1日と表示されるとマクロは非実行です。 現状のコード Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("$D$6")) Is Nothing Then If Range("$D$6").Value = "3月" Then Call 増築3月31日以前図表示 End If End If End Sub 以上となります。 よろしくお願いします。
質問日時: 2025/01/21 09:35 質問者: エクセル小僧
ベストアンサー
1
0
-
ExcelのVBAコードについて教えてください。
下記のコードは以前教えて頂いたコードで Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next Dim RE As Object Set RE = CreateObject("VBScript.RegExp") RE.Pattern = "^\d+$" If Not Intersect(Target, Range("$C$22")) Is Nothing Then If RE.test(Range("$C$22").Value) = True Then Call 増築建物階数図表示 End If End If End Sub セル値C22に半角英数字が入力されるとマクロ「増築建物階数図表示」が実行されrます。 セル値C22に「10.00」とか「20.00」とかを入力すると上手くマクロが実行されますが セル値C22に「10.25」とか「20.01」とかのように小数点第1・2に数字が入力されると 上手くマクロが実行されません。 解決方法を教えてください。 尚、セルC22には、書式「0.00"㎡";@」 を設定しております。 よろしくお願いします。
質問日時: 2025/01/20 17:08 質問者: エクセル小僧
ベストアンサー
1
0
-
エクセルのVBAコードについて教えてください。
作業シートに下記のコードを設定しております。 Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("$C$5")) Is Nothing Then If Range("$C$5").Value = "都市計画内" Then Call 新築手続き必要 End If End If End Sub コードは一つの指定セル値の指定文字が表示されるとマクロ「新築手続き必要」が実行されます、 複数の指定セル値に指定文字が表示された時にマクロ「新築手続き必要」が実行できる方法を教えてください。 例えば C5="都市計画区域内" 且つ G5="3月31日以前" 且つ I5="4月01日以降" 以上の場合にマクロ「新築手続き必要」が実行できる方法を教えてください。 よろしくお願いいたします。
質問日時: 2025/01/20 08:45 質問者: エクセル小僧
ベストアンサー
1
0
-
エクセルのVBAについて教えてください。
作業シートに Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("$C$23")) Is Nothing Then If Range("$C$23").Value = "増築" Then Call 増築建物規模コピー End If End If End Sub を設定してます。 指定セル値に「増築」と表示された場合にマクロ「増築建物規模コピー」 が実行されます、 このコードを 指定セルC23に不特定の半角英数字が表示された場合に マクロ「増築建物規模コピー」が実行できる方法を教えてください。 セルC23の書式設定は (0.00"㎡";@)としております。 よろしくお願いいたします。
質問日時: 2025/01/19 11:31 質問者: エクセル小僧
ベストアンサー
2
1
-
エクセルVBAで在庫の組み換え処理をしたい
エクセルVBAで在庫の組み換え処理をしたい VBAを勉強しているのですが、 例えば、袋入り個数が[バラ]、[11個] [51個] [101個] [202個]の物があり、 [11個入り]の袋から[51個入り]の袋に組み換えたい場合、 必要な[11個入り]袋の数と組み換えた余りの個数をMSGBOXに表示させたい。 また、同様に、[101個入り]の袋から[51個入り]の袋や[11個入り]の袋に組み換えた場合の、 必要な組み換え元袋数と余りの個数をMSGBOXに表示させたい いろいろ模索し下記のようなコードを試しましたがこれで良いのかわかりません。 よろしくお願いいたします。 Sub 在庫組換3() Dim 組換先入り数 As Long Dim 組換元入り数 As Long Dim 入荷組数 As Long Dim 必要な組換元組数 As Long Dim 組換えた後の残り As Long Dim 出来た組数 As Long Dim 必要な袋数 As Long ' 例:10[セット](例えば、組換先入り数51個入りが10セット入荷) 入荷組数 = Val(InputBox("入荷組数" & vbCrLf & "例:[10]セット", "入力してください。")) ' 例:51[個入り] 組換先入り数 = Val(InputBox("組換先入り数" & vbCrLf & "例:[51]個入り", "入力してください。")) ' 例:101[個入り] 組換元入り数 = Val(InputBox("組換元入り数" & vbCrLf & "例:[101]個入り", "入力してください。")) 必要な組換元組数 = Int((入荷組数 * 組換先入り数) / 組換元入り数) 組換えた後の残り = (入荷組数 * 組換先入り数) Mod 組換元入り数 出来た組数 = 入荷組数 MsgBox ("必要な組換元組数:" & 必要な組換元組数 & vbCrLf & _ "出来た袋数:" & 出来た組数 & vbCrLf & _ "組換えた後の残り:" & 組換えた後の残り) End Sub
質問日時: 2025/01/15 15:57 質問者: IrohaKujoh
ベストアンサー
1
0
-
VBAから書き込んだ条件付き初期の挙動について
お世話になります。いつも助けていただいています。表題の件につきまして,教えていただければと思います。 Range(Worksheets("sheet1").Cells(1, 2), Worksheets("sheet1").Cells(101, 14)).FormatConditions.Add(Type:=xlExpression, Formula1:="=CELL(""ROW"")=ROW()").Interior.Color = rgbPowderBlue をVBAから書き込んでいますが,書き込む方法によって挙動がちがうようですので,アドバイスいただければと思います。その都度,条件付き書式設定の「ルールの管理」で確かめてみると,書き込みは行われているようです。 this workbook に Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Worksheets("sheet1").Cells.FormatConditions.Delete Range(Worksheets("sheet1").Cells(1, 2), Worksheets("受付名簿").Cells(101, 14)).FormatConditions.Add(Type:=xlExpression, Formula1:="=CELL(""ROW"")=ROW()").Interior.Color = rgbPowderBlue End Sub のように記載した時だけ思った動作になります。 これを,sub にして,標準モジュールに記載し, sub きょうちょう() Worksheets("sheet1").Cells.FormatConditions.Delete Range(Worksheets("sheet1").Cells(1, 2), Worksheets("受付名簿").Cells(101, 14)).FormatConditions.Add(Type:=xlExpression, Formula1:="=CELL(""ROW"")=ROW()").Interior.Color = rgbPowderBlue end sub this workbook から下記のように Private Sub Workbook_Open() call きょうちょう End Sub 呼び出すと,条件付き書式に書き込みはあるようですが,思った動作になりません。 該当のSheet1には, Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Application.ScreenUpdating = True End Sub の記述いづれもしてあります。アドバイスいただけるとたすかります。
質問日時: 2025/01/11 12:29 質問者: mabo52
ベストアンサー
2
0
-
VBA 最終行の取得がうまくいかず上書きされてしまいます。
こんにちは。 Excelを使った日報を使っており、集計シートを作成しています。 日報は1日ごとに1枚のシートを振り分けていて、必要項目だけを抽出して【1日】【2日】【3日】…と続けて集計シートに転記したいです。 シート【1日】は問題なく転記出来たのですが、【2日】を転記すると【1日】のデータに上書きされてしまいます。 【2日】以降を【集計シート】の最終行を取得して次の行から貼り付けていく方法を教えていただけないでしょうか? 日毎の日報シートA列(非表示にしています)に抽出対象がありますが、こちらは【集計シート】へは表示していません。 また【1日】から【31日】までのシートを連続で抽出貼り付けが出来るVBAも教えていただけると嬉しいです。 ただシートは【月集計】と日毎のシート以外にもいくつかあるため(集計シートは実際の日報だと4枚目にあります)、「【月集計】以外のシートで指定」するコードは使えないです。 Sub 抽出3() '抽出 Dim i, j As Long i = 5 j = 3 With Worksheets("1日") Do While .Cells(i, "B").Value <> "" If .Cells(i, "A").Value <> "" Then For x = 1 To 13 Worksheets("月集計").Cells(j, x).Value = .Cells(i, x + 1).Value Next x j = j + 1 End If i = i + 1 Loop End With End Sub よろしくお願いします。
質問日時: 2025/01/06 07:07 質問者: haru1935
ベストアンサー
5
0
-
VB.net 文字列から日付型へ変更したい
文字列で "令和7年1月05日 05時00分00秒" があります。 これを日付型の 2025/01/05 05:00:00 に変換したいのですが、 簡単なようで難しいです。
質問日時: 2025/01/05 17:49 質問者: payphone
ベストアンサー
2
1
-
VBAでエクセルのテキストデータをクリップボードに格納したい。
エクセルのA1~A10にdata1~data10というデータがあるとします。 このdata1~data10というセルごとの値をクリップボードにそれぞれ格納するにはどうしたらいいでしょうか? コントロール+Cでコピーをすればクリップボードにそれぞれのセルの値(data1~data10)が格納されるのですが、同じことをVBAでしてもクリップボードには格納できないですよね? エクセルで作ったデータを別のアプリにコピペする必要があるのですが、いちいちコピペすると大変なのでまとめてクリップボードに格納にウィンドウズキー+Vでクリップボードから選択してペーストすることを考えています。 なお、別のアプリにCSVでインポートするにはアプリの改変が必要で費用がかかるということで、インポートする方法はできません。(~_~;)
質問日時: 2025/01/04 09:12 質問者: CaveatEmptor
ベストアンサー
2
0
-
ExcelのVBAコードについて教えてください。
下記のコードは以前、マクロを繰り返し実行される不具合を解決するために、教えて頂いたコードですが、やはり指定セル値指定文字が表示されるとマクロ「省エネ方法」が繰り返し実行されます。 例えば「省エネ方法」が実行されて「1」を入力し、(OK)をクリックするともう一度、同じマクロが実行されてしまいます。(キャンセル)をクリックすると次のコードが実行されますが、次のコードで違うマクロを実行すると、またまた「省エネ方法」が実行されます。 マクロ「省エネ方法」を繰り返し実行しない方法を教えてください。 現状のコード Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("$A$5,$A$13").Text) Is Nothing Then If Range("$A$5").Text = "新築" And Range("$A$13").Text = "手続き必要" Then Call 省エネ方法 End If End If End Sub ちなみに If Not Intersect(Target, Range("$A$5").Text) Is Nothing Or _ Not Intersect(Target, Range("$A$13").Text) Is Nothing Then If Range("$A$5").Text = "新築" And Range("$A$13").Text = "手続き必要" Then Call 省エネ方法 End If End If このコードに変更しても同様です。 よろしくお願いいたします。
質問日時: 2024/12/27 09:14 質問者: エクセル小僧
ベストアンサー
7
0
-
Excel VBAについて。こんな動作をさせるためにはどう書けばよいでしょうか。
添付のような表があります。(実際は100行くらいあります) 例えばAさんは1/13,14,15と滞在する予定になっていますが、 日ごとに何人が滞在しているかカウントするマクロが作りたいです。 ボタンを押すと、1/13は何人、1/14は何人、、と結果が出てくるのが理想です。 また、(これはできればなのですが)BさんのようにD列に「前泊」という文字がある人については出発日の翌日から滞在としたいです。例えばBさんは1/15~17で滞在ということになります。 マクロ初心者なのですが調べようにもなんて調べたらいいのかも分からず、得意な方がいらっしゃれば教えていただきたいですm(__)m ボタンの作り方や変数の定義など基本的な部分はネットで調べて分かるようになりました
質問日時: 2024/12/26 18:29 質問者: imuy999
ベストアンサー
10
0
-
ExcelのVBAコードについて教えてください。
作業ブックのシートに Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("AL10")) Is Nothing Then If Range("AL10").Value = "手続き必要" Then Call 矢印9表示 End If End If End Sub を設定しており、 指定セル値AL10に(手続き必要)と表示されたら、 マクロ Call 矢印9表示 が実行できるように設定しましたが、 AL10に(手続き必要)と表示されても 上手くマクロが実行できませんでした。 セルAL10には数式「=$AL$2&""&$AL$3&""&$AL$4&""&$AL$5&""&$AL$6&""&$AL$7&""&$AL$8&""&$AL$9」を設定しておりまして、この数式に表示された文字をセルAL10に表示させてます。 解決方法を教えてください。 よろしくお願いいたします。
質問日時: 2024/12/25 14:32 質問者: エクセル小僧
ベストアンサー
3
0
-
Excelのマクロについて教えてください。
下記のマクロを実行すると「メッセージボックス」が表示され、「OK」をクリックすると Call 着工時期 が実行されるようしてますが、 「OK」をクリックしても Call 着工時期 が実行されません、 解決方法を教えてください。 現状のマクロ Sub 着工日確認() Dim alert alert = MsgBox("一般的には" & vbLf & " " & vbLf & "「くい打ち工事」" & vbLf & "「地盤完了工事」" & vbLf & "「山留工事」」" & vbLf & "「根切り工事」" & vbLf & "に係る工事が開始開始された時点を言います。", vbYes + vbExclamation, "着工日の考え方") Select Case alert Case vbYes: Call 着工時期 End Select End Sub 以上となります。 よろしくお願いいたします。
質問日時: 2024/12/25 12:05 質問者: エクセル小僧
ベストアンサー
4
0
-
不要項目の行削除方法について
EXCEL_VBA初心者です。 大変申し訳ございませんが行削除EXCEL_VBAコードについてご教授願います。 「対象シート」に果物の項目があり A列:種類No、B列:種類、C列:名称No、D列:名称、E列:金額 となっています。 この「対象シート」から必要な果物以外を行ごと削除したいと思っています。 「対象項目」のシートのA列に削除したい果物の種類Noが記載されています 「対象項目」のシートのC列には削除されたくない果物の名称Noが記載されています。 分かり難いのですが、「対象項目」のシートの種類に記載されている果物で名称に記載されている果物は削除せず、それ以外を削除したいです。 例えば、果物の種類No :01みかんの場合はAA清美、ABマドンナ、AE不知火の3名称は削除せず、その他のACセトカ、ADデコポンは削除する。 07柿の場合はCA富有柿は削除せず、CB おけさ柿は削除する 「対象シート」が「削除後」シートの結果になるEXCEL_VBAコードを教えて下さい。 実際は果物の品種は数十種類となり「対象シート」も何百行にもなります。 よろしくお願いします。
質問日時: 2024/12/23 10:21 質問者: cake
ベストアンサー
8
0
-
【マクロ】オートフィルターにて12/1以上12/3以下のコード。日付はセルに入力。教えて下さい
以下コードをご覧ください。動きます。 日付の指定をセルA1に12/1以上。セルA2に12/3以下 を入力したいです コード書き方ご存じの方、教えて下さい ws1.Range(Cells(1, 1), Cells(10, 3)).autofilter 1, ">=2024/12/1", xlAnd, "<=2024/12/3"
質問日時: 2024/12/20 07:50 質問者: aoyama-reiko
ベストアンサー
3
0
-
Excelのマクロについて教えてください。
下記の2つのマクロを1つに出来る方法を教えてください。 このマクロは以前教えて頂いたマクロで、マクロを実行すると 指定ファイルが指定フォルダ内に移動します。 マクロ-1 Sub 交付用に移動A3() On Error Resume Next Dim myPath As Variant Dim fPath As String, fname As String fPath = ThisWorkbook.Path ' myPath 変数にフォルダパスを取得 myPath = folder_acquisition(fPath) ' 「交付用_A3」で終わるPDFファイルを取得 fname = Dir(myPath(1) & "*(交付用_A3).pdf") Do While fname <> "" ' ファイルの移動を実行 Name myPath(1) & fname As myPath(2) & fname fname = Dir Loop End Sub Function folder_acquisition(fPath As String) As Variant() Dim fso As Object, f As Object Dim n As Integer Dim myPath(2) As Variant Set fso = CreateObject("Scripting.FileSystemObject") ' 現在のフォルダ内のPDFファイルがあるパスを取得 myPath(1) = fPath & "\" ' フォルダ内のサブフォルダを走査し、「_交付用」で終わるものを見つける For Each f In fso.GetFolder(fPath).SubFolders Dim folderName As String folderName = Mid(f.Path, InStrRev(f.Path, "\") + 1) ' フォルダ名が「8桁の英数字-1_交付用」というパターンに一致する場合 If folderName Like "########-#_交付用" Then myPath(2) = f.Path & "\" n = n + 1 End If ' 必要なフォルダが見つかったら終了 If n = 2 Then Exit For Next f Set fso = Nothing folder_acquisition = myPath() End Function マクロ-2 Sub 交付用に移動A4() On Error Resume Next Dim myPath As Variant Dim fPath As String, fname As String fPath = ThisWorkbook.Path ' myPath 変数にフォルダパスを取得 myPath = folder_acquisition(fPath) ' 「交付用_A3」で終わるPDFファイルを取得 fname = Dir(myPath(1) & "*(交付用_A4).pdf") Do While fname <> "" ' ファイルの移動を実行 Name myPath(1) & fname As myPath(2) & fname fname = Dir Loop End Sub Function folder_acquisition(fPath As String) As Variant() Dim fso As Object, f As Object Dim n As Integer Dim myPath(2) As Variant Set fso = CreateObject("Scripting.FileSystemObject") ' 現在のフォルダ内のPDFファイルがあるパスを取得 myPath(1) = fPath & "\" ' フォルダ内のサブフォルダを走査し、「_交付用」で終わるものを見つける For Each f In fso.GetFolder(fPath).SubFolders Dim folderName As String folderName = Mid(f.Path, InStrRev(f.Path, "\") + 1) ' フォルダ名が「8桁の英数字-1_交付用」というパターンに一致する場合 If folderName Like "########-#_交付用" Then myPath(2) = f.Path & "\" n = n + 1 End If ' 必要なフォルダが見つかったら終了 If n = 2 Then Exit For Next f Set fso = Nothing folder_acquisition = myPath() End Function 以上となります。 よろしくお願いいたします。
質問日時: 2024/12/18 09:25 質問者: エクセル小僧
ベストアンサー
1
0
-
VBA 同じフォルダ内のすべてのファイルに同じセルをペーストしたい
VBAについてのご質問です。 ”データ処理ファイル”というファイルの”データ処理シート”というシートの”B1:S110000”セルをコピーして 同じフォルダ内のすべてのファイルの”あ”というシートの”B1:S110000”セルにペーストしたいです。 自分なりに下記のように作ってみましたが一部でエラーが出てしまいうまく動作しません。 お手数をおかけしますが、どのように修正すればよいかご教示いただけますでしょうか。 また、全然違うようでしたらサンプルコードをいただけないでしょうか? 差し出がましい質問で大変恐縮ですが、ご教示いただけると幸いです。 Sub 粗さデータ処理() Dim fileName As String Dim wsName As String: wsName = "粗さデータ" '対象ワークシート名 Application.ScreenUpdating = False '各ファイルの変更処理を表示させない Application.DisplayAlerts = False '保存時メッセージを表示させない ChDir ThisWorkbook.Path fileName = Dir("*.xlsx?") 'フォルダ内の最初のエクセルファイル名を取得 Do While fileName <> "" If fileName <> ThisWorkbook.Name Then 'マクロのあるファイルでなければ With Workbooks.Open(fileName) 'ファイルオープン ThisWorkbook.Worksheets("粗さデータ処理シート").Range("B1:S110000").Copy_ .Worksheets(wsName).Range("B1").Select .Close savechanges:=True '保存&クローズ End With End If fileName = Dir() 'フォルダ内の次のエクセルファイル名を取得 Loop Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub ThisWorkbook.Worksheets("粗さデータ処理シート").Range("B1:S110000").Copy_でエラーが出ています。
質問日時: 2024/12/17 01:19 質問者: あずきぬし
ベストアンサー
3
0
-
vba Windowオブジェクト(Windows(index))について教えてください
いつもお世話になります 昔作ったプログラムを見直ししていて、ちょっと疑問になったので教えてください ウェブを見ると オブジェクトを返すには、Windows (index) を使用しますとありますが、 (質問1) アクティブウィンドウは常にWindows(1)なのでしょうか? (質問2) そしていま、ウィンドウのタイトルバーにブック名を出力しうとしているみたいですが これで良いのでしょうか? MyBook as string Dim wds as Window MyBook = ActiveWorkBook.name Set wds = ActiveWorkBook.Windows(1) wds.Caption = MyBook あまり必要がないみたいですが、プログラムにコメントを残したいので教えてください 以上、宜しくお願い申し上げます
質問日時: 2024/12/16 18:10 質問者: 公共ごま
ベストアンサー
1
0
-
Vba エラーコード2147xxxxxxについて教えてください
いつもお世話になります 今、ExcelからDocuworksの操作を与えられた関数から仕事をしています rc = XDW_GetDocumentNameInBinder(lngHandle, k, fName(0), Ksize, vbNullString) バインダーファイルからファイル名を取得するのですが、正常値はそのバイト数が得られますが ファイル名がなくなるとエラーコードとなります そのエラーコードで質問ですが Excel32ビット版の時は、-2147xxxxxxと負の値だったので if RC < 0 Then Exit Sub チェックできたのですが Excel64ビット版では正の値で 2147xxxxxxxで出てくるのでそのあとに if Abs(RC) > 2147000000 Then Exit Sub としました そこで、これ良いのかな? っと思っています また環境が変わっても使えそうなものが他にあるような気がして相談してみました 以上、何か良いと思うものが有ったら教えてください 以上、宜しくお願い致します
質問日時: 2024/12/14 16:10 質問者: 公共ごま
ベストアンサー
1
1
-
ExcelのVBAコードについて教えてください。
下記のコードは以前教えて頂いたコードで If Not Intersect(Target, Range("C5")) Is Nothing Then If Range("C5").Value = "都市計画区域内" Then Call 申請時期 End If End If 指定セル値に指定文字が表示されると マクロが実行されます、又、繰り返しのマクロ実行を防いでます。 このコードだと、指定セルが同じセルでのコードになりますが、 If Not Intersect(Target, Range("C5")) Is Nothing Then If Range("C5").Value = "都市計画区域内" Then この部分を If Range("C5").Value = "都市計画区域外" And Range("E5").Value = "階数:2階以上又は200㎡を超える" Then に変更し、マクロを繰り返し実行できない方法を教えてください。 よろしくお願いいたします。
質問日時: 2024/12/05 16:25 質問者: エクセル小僧
ベストアンサー
4
0
-
ExcelのVBAコードについて教えてください。
作業ブックの作業シートにVBAコードを設定してます。 このコードは先日教えて頂いたコードを少しアレンジしております。 このコードは指定セル値「C5」に指定文字が表示された場合に指定マクロが実行されます。 このコードを 指定セル値「C5」に不特定の文字が表示された場合に指定マクロが実行できるように変更する方法を教えてください。 現状のマクロ Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("C5")) Is Nothing Then If Range("C5").Value = "新築" Then Call 建物面積 End If End If End Sub
質問日時: 2024/12/04 13:24 質問者: エクセル小僧
ベストアンサー
1
0
-
Excelのマクロについて教えてください。
下記のマクロを実行すると メッセージボックスが表示され、「はい(Y)」をクリックすると マクロ「Call 都市計画区域内」が実行されます。 このマクロを 画像のようにメッセージボックスの表示を 「区域内」「区域外」「キャンセル」として 「区域内」をクリックするとマクロ「Call 都市計画区域内」が実行 「区域外」をクリックするとマクロ「Call 都市計画区域外」が実行 「キャンセル」をクリックするとマクロ実行されないように変更する方法を教えてください。 現状のマクロ Sub 都市計画() alert = MsgBox("都市計画区域", vbYesNo + vbQuestion, "都市計画確認") If alert <> vbYes Then Exit Sub End If Call 都市計画区域内 End Sub 以上となります。 よろしくお願いいたします。
質問日時: 2024/12/04 10:13 質問者: エクセル小僧
ベストアンサー
2
0
-
VBAについて教えて下さい
お世話になります。 excel2019で作成したVBAはexcel2013で動かす事は出来ないのでしょうか?動かない場合はexcel2013とexcel2019に搭載されているマクロや関数の違いよるのでしょうか。対処法などは有りますでしょうか。 ご教授宜しくお願い致します。
質問日時: 2024/12/04 00:44 質問者: mokatsu
ベストアンサー
4
0
-
Excelの数式について教えてください。
下記の条件で「シート名昇降機【青紙】(表面)」のセル「CB5」に数字を表示できる方法を教えてください。 条件 シート名「基本情報」のセルにプルダウンで文字が表示されます。 例えば №1号機 №1号機~№2号機 №3号機~№4号機 №3号機~№5号機 等々 この表示された文字を以下のように数字にしたいのですが、 №1号機=1 №1号機~№2号機=2 №3号機~№4号機=2 №3号機~№5号機=3 のように№で表示された数字の数を数字に出来る方法を教えてください。 よろしくお願いいたします。
質問日時: 2024/12/03 10:09 質問者: エクセル小僧
ベストアンサー
1
0
-
ExcelのVBAコードについて教えてください。
作業ブックのThisWorkbookに下記のコードを設定しています。 ブックを開くとメッセージボックスが表示されて、 はい(Y)をクリックすると以下のマクロが実行されます。 いいえ(N)をクリックするとマクロが実行されません。 このコードを はい(Y)の代わりに「新築」と表示し、それをクリックするとマクロ「新築シート表示」が実行 同じく 「増築」と表示し、それをクリックするとマクロ「増築シート表示」が実行 「変更」と表示し、それをクリックするとマクロ「変更シート表示」が実行 「キャンセル」と表示し、それをクリックするとすべてのマクロが非実行 に出来る方法を教えてください。 現行のコード Private Sub Workbook_Open() Dim alert As VbMsgBoxResult alert = MsgBox("シートを表示しますか?", vbYesNo + vbQuestion, "シート確認") If alert <> vbYes Then Exit Sub End If Call 新築シート表示 Call 増築シート表示 Call 変更シート表示 End Sub 以上となります。 よろしくお願いいたします。
質問日時: 2024/12/03 09:10 質問者: エクセル小僧
ベストアンサー
2
0
-
Vba 型が一致しません(エラー13)のセルを特定する方法を教えてください
いつもお世話になります 今、沢山の数値を扱うプログラムを社内で提供していますが、たまにエラー13が出て その場所特定に呼ばれます。 プログラムにパスワードが掛かっているので、解除して再計算で場所を特定します そこでOnError Gotoからエラーメッセージを出そうと考えましたが その場所が特定できればと思い相談しました エラーの箇所は単純で Dim ABC as Double の変数に代入するセルに文字が入っているという時です もし、そのセルの特定方法が分かれば教えてください 以上、宜しくお願いいたします
質問日時: 2024/11/29 14:16 質問者: 公共ごま
ベストアンサー
6
0
-
Excelのマクロについて教えてください。
下記のマクロを実行するとセル値の番号の該当フォルダが指定フォルダから指定フォルダ内に移動出来るマクロになっております。 このマクロの実行は、シート名「物件管理」にVBA Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Range("AE79").Value = "該当" Then Call フォルダ移動 End If End Sub を設定して実行しております。 しかし、マクロを実行後に、対象フォルダを移動済みの場合でも、シート「物件管理」上で作業をする度に、メッセージ「フォルダを移動しますか?」が表示されてしまいます。 対象フォルダが移動済み又は、メッセージが表示されて「はい(Y)を1回クリックすることで シート「物件管理」上で作業をする度に、メッセージ「フォルダを移動しますか?」が非表示となる方法を親切にコード元を教えてください。 現状のマクロ Sub フォルダ移動() Dim alert As VbMsgBoxResult alert = MsgBox("フォルダを移動しますか?", vbYesNo + vbQuestion, "移動確認") If alert <> vbYes Then Exit Sub End If On Error Resume Next Dim fso As Object Dim MSfo As String Dim RSfo As String Dim sh As Worksheet Set sh = Workbooks("作業管理(最新).xlsm").Sheets("物件管理") Set fso = CreateObject("Scripting.FileSystemObject") RSfo = "\\nas-sp01\share\確認部\電子申請 関連\2.審査中\北海\" Dim i As Long For i = 1 To 20 If sh.Cells(i, "AG").Value <> "" Then MSfo = "\\nas-sp01\share\確認部\電子申請 関連\2.審査中\◆未審査物件◆\" & sh.Cells(i, "AG").Value & "_*" End If fso.MoveFolder MSfo, RSfo Next Set fso = Nothing End Sub
質問日時: 2024/11/27 15:06 質問者: エクセル小僧
ベストアンサー
1
0
-
VBA Application.Matchについての質問です
商品管理にマクロを使用しています。W列に仕入日、X列に仕入れ品名、Y、Z、AAには内容物の個数を入力しています。AL列には販売済み品名、AM,AN,AOには数字が入っていますが基本1に想定しています。仕入れ品は1箱に複数個のものもあり、便宜上個々としてバラす(AA列の数)必要があります。X:AAは仕入れ品名と日付で昇順し、販売済み品は同一の品名を統合し、数字は合算した形からAAをバラさずにApplication.Matchを実行すると完璧に走ってくれることは確認できています。つぎにAAをバラすため 、別シートからX1に貼り付けたのちに Dim i As Variant For i = Cells(Rows.Count, "AA").End(xlUp).Row To 1 Step -1 If Cells(i, "AA").Value > 1 Then Range(Cells(i, "W"), Cells(i, "AA")).Copy Range(Cells(i + 1, "W"), Cells(i + 1, "AA")).Resize(Cells(i, "AA").Value - 1).Insert End If Next Application.CutCopyMode = False を追加すると、X列の途中(AL列の統合前の最終行?)までしか見に行かずに”見当たりません”のメッセージが返ってきます。 あらかじめ別シートでバラしてから本シートのX1に貼り付けてVBAを走らせても結果は同じで止まります。 バラにしなければ走る、VBAを追加すると止まるのはなぜでしょうか?どこかを修正すればX列を最後まで検索してくれるようになるのでしょうか。 さほど知識がないので何日も考え、試しています。 是非ともご教授お願いいたします。
質問日時: 2024/11/25 14:10 質問者: mokatsu
ベストアンサー
4
0
-
Excel マクロについて詳しい方、ご教示ください。 『行数が毎回変わる元データの、A列に「1」と入
Excel マクロについて詳しい方、ご教示ください。 『行数が毎回変わる元データの、A列に「1」と入っている行のみ、先データの各セルにコピペし印刷したい』のですが、うまくいかず行き詰まっています…。 どのようにすればいいでしょうか? ①元データのタイトル行を除きたい ②A列に「1」と入っている場合のみコピペ印刷したい 以上がメインの悩みで、以下はサブ的な悩みなのですが、 ③元データ、先データのセル共に連続していない為、全箇所1個1個指定しているが可能ならコンパクトしたい ④元データシリアル値→先データ元号の数字のみの表記にしたい よろしくお願いいたします。 ーー以下マクローー Sub テスト() Dim lastRow As Long Dim i As Long 'データのA列の最終行取得 lastRow = Sheets("元データ").Range("A" & Rows.Count).End(xlUp).Row '1行目からlastRow行目まで繰り返し For i = 1 To lastRow 'データをセット Sheets("先データ").Range("EA2").Value = Sheets("元データ").Range("B" & i).Value Sheets("先データ").Range("EL2").Value = Sheets("元データ").Range("C" & i).Value Sheets("先データ").Range("EW2").Value = Sheets("元データ").Range("D" & i).Value ※計60箇所ある為省略 '印刷プレビュー Sheets("先データ").PrintPreview Next End Sub
質問日時: 2024/11/23 01:53 質問者: gooddbx1013
ベストアンサー
2
0
-
VBAで特定の文字が入った行をコピーして貼り付けたい
仕事で他の人に使ってもらうExcelファイルを作っているのですが行き詰っているので助けてください。 ①列指定して特定の文字が入ったセルを複数条件から探して該当する行を全てコピーして、 ②空いている行から貼り付けして、 ③コピーした行のセルの一か所( I列予定 )に文字や記号を1文字追加したい。 Sub 行コピー() Dim mySheet As Worksheet Dim targetSheet As Worksheet Dim lastRow As Long Dim i As Long Set mySheet = ThisWorkbook.Sheets("シート名") Set targetSheet = ThisWorkbook.Sheets("シート名") lastRow = mySheet.Cells(mySheet.Rows.Count, "A").End(xlUp).Row For i = 1 To lastRow If mySheet.Cells(i, "E").Value = "〇〇" Or mySheet.Cells(i, "E").Value = "△△" Or mySheet.Cells(i, "E").Value = "✕✕" Then mySheet.Rows(i).Copy Destination:=targetSheet.Rows(targetSheet.Cells(targetSheet.Rows.Count, "A").End(xlUp).Row + 1) End If Next i End Sub ネットで探して②までは上記で可能なのですが③が分からず、 どなたか助けて頂けると助かります。
質問日時: 2024/11/22 15:50 質問者: マーボー666
ベストアンサー
2
0
-
Excelのマクロについて教えてください。
下記のマクロを実行すると指定セル値(CE1)をファイル名にしてマクロ有効ブックとして保存できます。 セル(CE1)には「=$CJ$16&""&$A$2」を設定しており、「CJ$16」には【青紙】と表示しており 「A$2」には物件毎の名前が表示されますが、物件の名前が「No.1」の場合に上手くマクロ有効ブックとして保存できません。(Excelの拡張子が無くなってます) 物件の名前が「№1」の場合には上手くマクロ有効ブックとして保存できます。 これはマクロで解決できるものでしょうか。 教えてください。 現状のマクロ Sub 名前を付けて保存ファイル削除() Dim alert As VbMsgBoxResult alert = MsgBox("名前を付けて保存を行いますか?", vbYesNo + vbQuestion, "保存確認") If alert <> vbYes Then Exit Sub End If On Error Resume Next Dim newName As String newName = Sheets("青紙表").Range("CE1").Value Dim ws As Worksheet Dim TargetCheck As String Dim List As Variant Dim i As Long Dim Chk As Boolean 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 Dim oldName As String oldName = ThisWorkbook.Path & "\" & ThisWorkbook.Name With ThisWorkbook Application.DisplayAlerts = False .SaveAs .Path & "\" & newName, xlOpenXMLWorkbookMacroEnabled Application.DisplayAlerts = True End With Kill oldName Application.ScreenUpdating = True Application.Quit With ThisWorkbook .Saved = True .Close False End With End Sub 以上となります。よろしくお願いいたします。
質問日時: 2024/11/21 10:13 質問者: エクセル小僧
ベストアンサー
2
0
-
VBAのエラー表示の対処法について
VBAのコード入力時に 型が一致しません とエラー表示が出てしまいます、、。 対処法がわからず困っています。修正方法を教えていただきたいです。 以下のものが入力したコードです。 よろしくお願いいたします。(´;ω;`) Sub AA1() Dim i For i = 60 To 104 If Cells(i, "D") Like "*入*" Then Range(Cells(i, "AM"), Cells(i, "AP")).Interior.Color = RGB(255, 0, 0) ' セルが赤色 ElseIf Cells(i, "D") Like "*退*" Then Range(Cells(i, "AM"), Cells(i, "AL")).Interior.Color = RGB(255, 0, 0) ' セルが赤色 ElseIf Cells(i, "D") = "空" Then Range(Cells(i, "AN"), Cells(i, "AL")).Interior.Color = RGB(255, 0, 0) ' セルが赤色 ElseIf Cells(i, "D").Interior.Color = RGB(252, 228, 214) And Cells(i, "D") = "" Then '空白でオレンジ色なら Range(Cells(i, "AL"), Cells(i, "AN")).Interior.Color = RGB(255, 0, 0) ' セルが赤色 End If Next i Dim i1 For i1 = 60 To 104 If Cells(i1, "E") Like "*入*" Then Range(Cells(i1, "AS"), Cells(i1, "AP")).Interior.Color = RGB(255, 0, 0) ' セルが赤色 ElseIf Cells(i1, "E") Like "*退*" Then Range(Cells(i1, "AM"), Cells(i1, "AP")).Interior.Color = RGB(255, 0, 0) ' セルが赤色 ElseIf Cells(i1, "E") = "空" Then Range(Cells(i1, "AO"), Cells(i1, "AQ")).Interior.Color = RGB(255, 0, 0) ' セルが赤色 ElseIf Cells(i1, "E").Interior.Color = RGB(252, 228, 214) And Cells(i1, "E") = "" Then '空白でオレンジ色なら Range(Cells(i1, "A0"), Cells(i1, "AQ")).Interior.Color = RGB(255, 0, 0) ' セルが赤色 End If Next i1 End Sub
質問日時: 2024/11/18 11:59 質問者: ya00623
解決済
6
0
-
Excelのマクロについて教えてください。
下記のマクロはネットから参照したマクロで、マクロを実行すると指定フォルダが圧縮できます。 このマクロでが圧縮対象のフォルダを targetPath = "C:\Users\160931\Desktop\ファイル更新(最新)\テスト物件\12345678-5_交付用" '作成するZIPファイルのパスを zipFilePath = "C:\Users\160931\Desktop\ファイル更新(最新)\テスト物件\12345678-5_交付用.zip" に指定しておりますが、 この指定を マクロ設定ブックと同じフォルダ内にある、フォルダ「12345678-5_交付用」に変更出来る方法を教えてください。 尚、圧縮対象フォルダは1つしか無く、「_交付用」は固定フォルダ名になりますが、 「_交付用」から前の部分(12345678-5)は物件毎に変更になる為、 ' フォルダ名が「8桁の英数字-1_交付用」というパターンに一致する場合 If folderName Like "########-#_交付用" Then のような設定を希望いたします。 現状のマクロ Sub フォルダを圧縮() Dim targetPath As String Dim zipFilePath As String Dim psCommand As String Dim wsh As Object Dim result As Integer 'ZIP形式で圧縮するフォルダ(またはファイル)パスを指定 targetPath = "C:\Users\160931\Desktop\ファイル更新(最新)\テスト物件\12345678-5_交付用" '作成するZIPファイルのパスを指定 zipFilePath = "C:\Users\160931\Desktop\ファイル更新(最新)\テスト物件\12345678-5_交付用.zip" '実行するPowerShellのコマンドレットを組み立て psCommand = "powershell -NoProfile -ExecutionPolicy Unrestricted Compress-Archive -Path " & targetPath & " -DestinationPath " & zipFilePath & " -Force" Set wsh = CreateObject("WScript.Shell") 'PowerShellのコマンドレットを実行 result = wsh.Run(Command:=psCommand, WindowStyle:=0, WaitOnReturn:=True) If (result = 0) Then MsgBox ("圧縮が正常終了しました。") Else MsgBox ("圧縮が異常終了しました。") End If '後片付け Set wsh = Nothing End Sub 以上となります。 宜しくお願い致します。
質問日時: 2024/11/18 09:09 質問者: エクセル小僧
ベストアンサー
1
0
-
VBAのループ処理について教えてください
Sub AA() If Range("D60") Like "*入*" Then Range("AM60:AP60").Interior.Color = RGB(255, 0, 0) ' セルが赤色 ElseIf Range("D60") Like "*退*" Then Range("AL60:AM60").Interior.Color = RGB(255, 0, 0) ' セルが赤色 ElseIf Range("D60") = "空" Then Range("AL60:AN60").Interior.Color = RGB(255, 0, 0) ' セルが赤色 End If End Sub 上記の式はシートの60行目についての処理ですが、これを102行目まで同列で同じ処理をしたい場合のループ処理の記載方法を教えて頂きたいです。。。 よろしくお願いいたします。
質問日時: 2024/11/15 11:47 質問者: ya00623
ベストアンサー
3
0
-
修正依頼:【VBA】 結合セルに複数画像とファイル名一括挿入する方法
ご覧いただきありがとうございます。 以前、「ダイアログボックスを開き画像ファイルを選択、1行目が見出し行になっている表のB2から6行ごとに結合したセルに画像を挿入し、隣のC列(6行ごと結合)に画像ファイル名(拡張子なし)が入る表を作る」という件で以下のコードを作成していただいたのですが、 画像がリンク貼り付けになってしまい、メール等で送信すると見れなくなってしまいます。 リンクではなく画像として挿入するためにはどうしたらいいでしょうか? 詳しい方、よろしくお願いいたします。 Sub Sample() Dim i As Long, fileName As String Dim rng As Range, sItems With Application.FileDialog(msoFileDialogFilePicker) .Title = "Select Image Files" .Filters.Clear .Filters.Add "Image Files", "*.GIF; *.JPG; *.BMP; *.PNG; *.TIF", 1 .AllowMultiSelect = True If .Show = 0 Then Exit Sub Set sItems = .SelectedItems End With For i = 1 To sItems.Count fileName = Dir(sItems(i)) Set rng = Cells(i * 6 - 4, 2) rng.Offset(, 1).Value = Left(fileName, InStrRev(fileName, ".") - 1) Set rng = rng.MergeArea With ActiveSheet.Pictures.Insert(sItems(i)) .Left = rng.Left .Top = rng.Top .Placement = xlMoveAndSize .ShapeRange.LockAspectRatio = msoFalse .ShapeRange.Width = rng.Width .ShapeRange.Height = rng.Height End With Next i End Sub
質問日時: 2024/11/14 16:46 質問者: ukr-pm
ベストアンサー
2
1
-
Excelのマクロについて教えてください。
下記マクロを実行すると ダイアログが開き、マウスで指定したPDFファイルを指定シートの指定セル値に設定しているファイル名に変更できます。 このマクロを下記の様に変更できる方法を教えてください。 マクロ設定ブックと同じフォルダ内に PDFファイル名が「A4」「A3」(固定のファイル名)となっているファイルがあります、 ダイアログを開かずに PDFファイル名が「A4」のファイル名をシート「昇降機質疑」セル値「V3」に設定しているファイル名に変更 PDFファイル名が「A3」のファイル名をシート「昇降機質疑」セル値「V9」に設定しているファイル名に変更 できる方法を親切にコード迄教えてください。 現状のマクロ Sub 交付用名前変更A4() Dim TargetFile As String Dim fPath As String, fname As String Dim newfName As String newfName = ThisWorkbook.Sheets("昇降機質疑").Range("V3").Value & ".pdf" newfName = NGNarrowToWide(newfName) ''メッセージを表示し、実施確認する。 If MsgBox(newfName & vbCrLf & vbCrLf & "(交付用_A4)を作成しますか。", vbExclamation + vbOKCancel) <> vbOK Then Exit Sub ' ファイルのパスを指定 fPath = ThisWorkbook.Path ' ダイアログを表示してファイルを選択 TargetFile = Application.GetOpenFilename("PDFファイル ,*.pdf", , "ファイルを選択", , False) If TargetFile = "False" Then Exit Sub ' ファイル名を変更 If TargetFile = fPath & "\" & newfName Then MsgBox "同名ファイルを選択しています" Exit Sub End If If Not Dir(fPath & "\" & newfName) <> "" Then Name TargetFile As fPath & "\" & newfName Else Dim rc As Integer rc = MsgBox("既に存在する名前です" & vbCrLf & "はいを押すと既存ファイルは削除され" & vbCrLf & "リネームファイルに置き換えられます", 52, "置き換え確認") If rc = vbYes Then Application.DisplayAlerts = False Kill fPath & "\" & newfName Name TargetFile As fPath & "\" & newfName Application.DisplayAlerts = True Else MsgBox "処理を中止しました" End If End If End Sub Public Function NGNarrowToWide(ByVal stg As String) As String stg = Replace(Replace(Replace(Replace(stg, "\", "¥"), "/", "/"), ":", ":"), "*", "*") stg = Replace(Replace(Replace(Replace(stg, "?", "?"), "<", "<"), ">", ">"), "|", "|") stg = Replace(stg, """", Chr(&H8168)) NGNarrowToWide = stg End Function 以上となります。 宜しくお願い致します。
質問日時: 2024/11/14 09:43 質問者: エクセル小僧
ベストアンサー
5
0
-
Excelのマクロについて教えてください。
下記のマクロは先日教えて頂いたマクロで、マクロを実行すると フォルダ:検査時必要図書(正本)の中にある、PDFファイルを フォルダ:########-#_交付用 にコピーできます。 このコードを フォルダ:検査時必要図書(正本)を無くして マクロ設定ブックと同じフォルダ内にあるPDFファイルを マクロ設定ブックと同じフォルダ内にある フォルダ:########-#_交付用 に移動出来る方法を教えてください。(親切に詳しいコード共教えてください) 宜しくお願い致します。 現状のマクロ Sub 交付用に移動() On Error Resume Next Dim myPath As Variant Dim fPath As String, fname As String fPath = ThisWorkbook.Path ' myPath 変数にフォルダパスを取得 myPath = folder_acquisition(fPath) ' 「交付用_A3」で終わるPDFファイルを取得 fname = Dir(myPath(1) & "*(交付用_A3).pdf") Do While fname <> "" ' ファイルのコピーを実行 FileCopy myPath(1) & fname, myPath(2) & fname fname = Dir Loop End Sub Function folder_acquisition(fPath As String) As Variant() Dim fso As Object, f As Object Dim n As Integer Dim myPath(2) As Variant Set fso = CreateObject("Scripting.FileSystemObject") ' 検査時必要図書(正本)フォルダの取得 myPath(1) = fPath & "\検査時必要図書(正本)\" ' フォルダ内のサブフォルダを走査し、「_交付用」で終わるものを見つける For Each f In fso.GetFolder(fPath).SubFolders Dim folderName As String folderName = Mid(f.Path, InStrRev(f.Path, "\") + 1) ' フォルダ名が「8桁の英数字-1_交付用」というパターンに一致する場合 If folderName Like "########-#_交付用" Then myPath(2) = f.Path & "\" n = n + 1 End If ' 必要なフォルダが見つかったら終了 If n = 2 Then Exit For Next f Set fso = Nothing folder_acquisition = myPath() End Function 以上となります。 宜しくお願い致します。
質問日時: 2024/11/13 14:05 質問者: エクセル小僧
ベストアンサー
2
0
-
Excelのマクロについて教えてください。
下記のマクロを以下の条件のように変更出来る方法を教えてください。 マクロを実行するとワイルドカード名のPDFファイルが指定フォルダから指定フォルダ内にコピーされます。 コードの「Case "検査時必要図書(正本)"」ですが、マクロを設定しているフォルダを指定 (仮に今回はフォルダを「テスト部件」としてます。 コードの「Case "返却用(副本)"」ですがマクロを設定しているフォルダ内のフォルダを指定 (今回は:24110955-1_交付用となっておりますが、最初「_」前の半角英数字と8文字と「-」以下の半角英数字と1文字は物件によって変更されますが、「_交付用」は変更されません。 画像のように テスト物件フォルダ内にある「24001234-1_(仮称)北海太郎(交付用_A3).pdf」を 同じくテスト部件内にあるフォルダ名「24001234-1_交付用」内にコピーを出来る方法を教えてください。 できるだけ詳しいコード迄、親切に教えてください。 現状のマクロ Sub 交付用() On Error Resume Next Dim myPath As Variant Dim fPath As String, fname As String fPath = ThisWorkbook.Path fPath = Left(fPath, InStrRev(fPath, "\") - 1) myPath = folder_acquisition(fPath) fname = Dir(myPath(1) & "*(交付用_A3).pdf") Do While fname <> "" FileCopy myPath(1) & fname, myPath(2) & fname fname = Dir Loop End Sub Function folder_acquisition(fPath As String) As Variant() Dim fso As Object, f As Object Dim n As Integer Dim myPath(2) As Variant Set fso = CreateObject("Scripting.FileSystemObject") With fso For Each f In .GetFolder(fPath).SubFolders Select Case Mid(f.Path, InStrRev(f.Path, "\") + 1) Case "検査時必要図書(正本)" myPath(1) = f.Path & "\" n = n + 1 Case "返却用(副本)" myPath(2) = f.Path & "\" n = n + 1 End Select If n = 2 Then Exit For Next f End With Set fso = Nothing folder_acquisition = myPath() End Function 以上となります。
質問日時: 2024/11/08 15:17 質問者: エクセル小僧
ベストアンサー
1
0
-
Visualbasicの現状について教えてください
いつもお世話になります 最近はVBAでプログラムを7,8年開発してきましたが、解析業務でのデータ入力に関して 対話式の入力プログラムおよび図化プログラムを作る必要性が出てきました 現在は昔に買ったVisual Studio2010が有るのですが現状のVisualBasicを揃えようとして インターネットを調べたらいろいろバージョンが有り、VisualBasicのことはあまり書かれていません 古い人間なのでVisualBasicだけあれば良いのですがどれをチョイスしたらよいのか迷っています 何か薦める製品が有りましたら教えてください 居樹王、宜しくお願い申し上げます
質問日時: 2024/11/06 16:43 質問者: 公共ごま
ベストアンサー
4
0
-
VBA 2次元配列の出力
EXCEL Microsoft365 VBAで、2行、179997列の2次元配列があります。 1行目には時刻、2行目には数値データがはいっています。 この配列について、A1セルをリサイズ、行列変換して出力することで、 A列に時刻、B列に数値データの一覧がほしいです。 しかし、出力すると、48926行目で、次の行以降が勝手にB列に折り返されて出力されてしまいます。 配列には正しくデータが入っていることを確認しているのですが、出力する際に、特定の行以降が次の行に出力されてしまい、 A列とB列に時刻が出力されてしまい、数値データが出力されません。 なお、48926行から179997行までは#N/Aとなっています。 データ数を少なくした場合(2行10列)で実行したときには問題なく出力されましたので、コード上に問題はないと思っています。
質問日時: 2024/10/26 17:22 質問者: ぶつりがくっておいしいの
ベストアンサー
1
0
-
Excelのマクロについて教えてください。
下記のマクロを実行すると、 指定セル値がファイル名となり、保存され、マクロ設定ブックが、削除されます。 このマクロを下記の様に変更する方法を教えてください。 シート名「新料金算定表2024.05」の指定セル「AS2」に(確認)と表示された場合のみこのマクロが実行でき。 シート名「新料金算定表2024.05」の指定セル「AS2」に(確認)と表示されていない場合は、メッセージボックスで(料金表を確認後、保存してください)とメッセージが表示され、マクロを実行する事が出来ないように出来る方法を教えてください。 現状のマクロ Sub 名前を付けて保存ファイル削除() Dim alert As VbMsgBoxResult alert = MsgBox("名前を付けて保存を行いますか?", vbYesNo + vbQuestion, "保存確認") If alert <> vbYes Then Exit Sub End If On Error Resume Next Dim newName As String newName = Sheets("受付・名簿・日付").Range("B54").Value Dim ws As Worksheet Dim TargetCheck As String Dim List As Variant Dim i As Long Dim Chk As Boolean 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 Dim oldName As String oldName = ThisWorkbook.Path & "\" & ThisWorkbook.Name With ThisWorkbook Application.DisplayAlerts = False .SaveAs .Path & "\" & newName, xlOpenXMLWorkbookMacroEnabled Application.DisplayAlerts = True End With Kill oldName Application.ScreenUpdating = True Application.Quit With ThisWorkbook .Saved = True .Close False End With End Sub 以上です。宜しくお願い致します。
質問日時: 2024/10/24 09:27 質問者: エクセル小僧
ベストアンサー
2
0
-
ExcelのVBAコードについて教えてください。
マクロ設定ブックに シート名「受付」「青紙表」「1」と「審査」があります。 作業の流れで、シート名「1」を表示して、作業を行う必要がありますが 度々失念してしまう事があり、マクロ等を設定し、この失念を防止したいと考えております。 私の希望ですが、 シート名「1」を1回でも表示しないと、シート名「審査」のシートに移動できないように設定できるマクロを教えてください。 その時にメッセージボックスが表示され、(シート「1」の作業が完了しておりません。作業を完了してください。)と表示出来る方法もお願いいたします。 又、このVBAコードをどこのシートに設定又はThisWorkbook を含めて親切にコード共教えください。 宜しくお願い致します。
質問日時: 2024/10/23 11:58 質問者: エクセル小僧
ベストアンサー
2
1
-
Excelのマクロについて教えてください。
下記のマクロは以前教えて頂いたマクロで、このマクロを実行すると ダイアログが開き指定したPDFファイルを指定セル値にてファイル名が変更され、 マクロ設定ブックと同じフォルダ内に保存されます。 ファイル名を変更したファイルの保存先をマクロ設定ブックと同じフォルダ内では無く 変更したいファイル名を変更したい「PDFファイル」があるフォルダ内にそのまま指定セル値でのファイル名に変更して保存できる方法を教えてください。 現状のマクロ Sub 行政回答修正あり() Dim TargetFile As String Dim fPath As String, fname As String Dim newfName As String newfName = ThisWorkbook.Sheets("Webコメント").Range("V1").Value & ".pdf" newfName = NGNarrowToWide(newfName) ''メッセージを表示し、実施確認する。 If MsgBox(newfName & vbCrLf & vbCrLf & "行政回答(修正あり)を作成しますか。", vbExclamation + vbOKCancel) <> vbOK Then Exit Sub ' ファイルのパスを指定 fPath = ThisWorkbook.Path ' ダイアログを表示してファイルを選択 TargetFile = Application.GetOpenFilename("PDFファイル ,*.pdf", , "ファイルを選択", , False) If TargetFile = "False" Then Exit Sub ' ファイル名を変更 If TargetFile = fPath & "\" & newfName Then MsgBox "同名ファイルを選択しています" Exit Sub End If If Not Dir(fPath & "\" & newfName) <> "" Then Name TargetFile As fPath & "\" & newfName Else Dim rc As Integer rc = MsgBox("既に存在する名前です" & vbCrLf & "はいを押すと既存ファイルは削除され" & vbCrLf & "リネームファイルに置き換えられます", 52, "置き換え確認") If rc = vbYes Then Application.DisplayAlerts = False Kill fPath & "\" & newfName Name TargetFile As fPath & "\" & newfName Application.DisplayAlerts = True Else MsgBox "処理を中止しました" End If End If End Sub Public Function NGNarrowToWide(ByVal stg As String) As String stg = Replace(Replace(Replace(Replace(stg, "\", "¥"), "/", "/"), ":", ":"), "*", "*") stg = Replace(Replace(Replace(Replace(stg, "?", "?"), "<", "<"), ">", ">"), "|", "|") stg = Replace(stg, """", Chr(&H8168)) NGNarrowToWide = stg End Function
質問日時: 2024/10/22 09:41 質問者: エクセル小僧
ベストアンサー
2
0
-
WindowsのOutlook を VBA から操作する
取引の為余計なソフトを入れなかった為、officeのOutlookを入れようとしたら、WindowsのOutlookが入ってしまい、普通に使えるのですが、VBAから操作できず困っています。 WindowsのOutlook Microsoft Outlook バージョンがインストールされています1.2024.1009.100 (Production). クライアント バージョンは以下の通りです:20241011003.11. WebView2 バージョンは 129.0.2792.89. セッション ID は 6ae48727-7623-7640-8eb7-24548d6cf6cf.= officeのOutlook の使い方は下記の通りです。一番簡単な方法かと・・・(当方はこれで十分なのですが) 'Outlookオブジェクトの変数宣言 Dim outlookObj As Outlook.Application Set outlookObj = New Outlook.Application 'メール送信用のオブジェクト作成 Dim mailObj As Outlook.MailItem Set mailObj = outlookObj.CreateItem(olMailItem) With mailObj '' .To = "[email protected]" 'メール宛先 '' .Subject = "メールの件名" 'メール件名 '' .body = "メール本文" 'メール本文 '' .BodyFormat = olFormatPlain 'メール形式に設定 End With .send WindowsのOutlookの ブジェクトの変数宣言 と メール送信用のオブジェクト作成 などを お教え願えれば幸いです。 参考URL でも結構です。
質問日時: 2024/10/19 17:52 質問者: kozo2004
ベストアンサー
4
0
-
エクセルのVBAコードについて教えてください。
作業ブックの「ThisWorkbook」に 下記のコードを設定しております。 このコードは「昇降機【青紙】(表面)」の指定セル「R20」に不特定の文字が表示されないと、警告文が表示され「昇降機質疑」シートに移動できないように設定したコードです。 このコードを 指定セル「R20」に不特定の文字では無く 不特定の半角英数字(8文字)が表示されないとシート移動が出来ないように変更出来る方法を教えてください。 現状のコード Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) If ActiveSheet.Name <> "昇降機質疑" Then Exit Sub Dim ws As Worksheet: Set ws = Worksheets("昇降機【青紙】(表面)") Dim c As Range If Not c Is Nothing Or IsEmpty(ws.Range("R20")) Or IsNumeric(ws.Range("R20")) Then MsgBox "未入力セルがあります、入力しないとシートを移動できません", vbCritical Application.EnableEvents = False Sh.Select Application.EnableEvents = True End If End Sub 以上となります。 宜しくお願い致します
質問日時: 2024/10/16 15:52 質問者: エクセル小僧
ベストアンサー
1
0
-
エクセルvbaの対象セルに色をつける 例えば a日付 b種類 c値段 dその他 にんじん 50 ぴー
エクセルvbaの対象セルに色をつける 例えば a日付 b種類 c値段 dその他 にんじん 50 ぴーまん 100 にんにく 250 ピーマン 150 みたいな表があって [やりたい事] B列の種類にピーマン、C列に100円があれば AからD列セルを黄色に B列がピーマン C列が150円は 赤色にしたい場合はどうすればいいですか? 自分なりに調べたらB列:B列で[ピーマン]の場所を検索して(dir)色をつけるみたいなことが書いてありましたがよく意味がわかりませんでした
質問日時: 2024/10/15 14:33 質問者: pico1234567
ベストアンサー
1
1
-
エクセルVBAのブックを開く方法 例えば [20241001] [20241002] [202410
エクセルVBAのブックを開く方法 例えば [20241001] [20241002] [20241003]のように毎日フォルダーが出来てきまして、各フォルダの中にはその日のデータが入った データA.csv データB.csv データC.csvの3つのcsvが入ってます。 マクロが入ったブックを日毎にフォルダーに入れて、 そのフォルダー内のcsvを開き、名前をつけてエクセルブックで保存したいのですがどうしたらいいですか? 困っている事 毎日フォルダが変わるのでパスでは出来ないです。出来ればデータ名は毎回同じなので、[フォルダー内のデータA.csv]を開くという設定にして、名前で拾いたい。また保存も同じファイル内にしたいです ブック[マクロ]→ファイル内のcsvを名前で開く→名前をつけてエクセルデータで同じフォルダ内に保存
質問日時: 2024/10/11 22:13 質問者: pico1234567
ベストアンサー
3
0
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
【Visual Basic(VBA)】に関するコラム/記事
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
-
ピンとくる人とこない人の違いは?直感を鍛える方法を心理コンサルタントに聞いた!
根拠はないがなんとなくそう感じる……。そんな「直感がした」という経験がある人は少なくないだろう。ただ直感は目には見えず、具体的な説明が難しいこともあるため、その正体は理解しにくい。「教えて!goo」にも「...
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAについてです。 データのチェッ...
-
ExcelのVBAコードについて教えてく...
-
Excelのマクロについて教えてくださ...
-
ExcelのVBAコードについて教えてく...
-
VBAでユーザーフォームを指定回数繰...
-
エクセルのVBAコードについて教えて...
-
エクセルのVBAについて教えてくださ...
-
[VB.net] ボタン(Flat)のEnable時の...
-
Excel マクロについて詳しい方、ご...
-
VBAでエクセルのテキストデータをク...
-
VBAから書き込んだ条件付き初期の挙...
-
ExcelのVBAコードについて教えてく...
-
エクセルVBAで在庫の組み換え処理を...
-
VB.net 文字列から日付型へ変更したい
-
Vba 型が一致しません(エラー13)...
-
修正依頼:【VBA】 結合セルに複数...
-
WindowsのOutlook を VBA から操作する
-
VBA 入力箇所指定方法
-
VBAでCOPYを繰り返すと、処理が途中...
-
Excel 範囲指定スクショについて Ex...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAについて教えて下さい
-
ExcelのVBAコードについて教えてく...
-
ExcelのVBAコードについて教えてく...
-
【ExcelVBA】5万行以上のデータ比...
-
VBA Application.Matchについての質...
-
Excelのマクロについて教えてくださ...
-
Excel VBAについて。こんな動作をさ...
-
Excelの数式について教えてください。
-
ExcelのVBAコードについて教えてく...
-
VBA 同じフォルダ内のすべてのファ...
-
不要項目の行削除方法について
-
Vba 型が一致しません(エラー13)...
-
【マクロ】オートフィルターにて12/...
-
【VBA】 結合セルに複数画像とファ...
-
VBAで特定の文字が入った行をコピー...
-
ExcelのVBAコードについて教えてく...
-
VBAでセルの書式を変えずに文字列を...
-
VBAのエラー表示の対処法について
-
Excelのマクロについて教えてくださ...
-
Excel マクロについて詳しい方、ご...
おすすめ情報