回答数
気になる
-
【マクロ】オートフィルター を非表示に対して実行した場合、有効ですか?約30,000行
標題の件、うまく、ソートされるでしょうか? 空白行も約10,000行は入っています。空白行をのぞく、ソートもいれています 列を非表示にしています 列を表示してからソートするか、非表示のままソートする考えてます ご存じのかた、教えて下さい
質問日時: 2025/05/14 08:39 質問者: aoyama-reiko
回答受付中
0
0
-
Vba Array関数について教えてください
いつもお世話になります 今、外部から指定された複数のシートを(ここでは2個にします) 下記のようにAraay関数で削除しようとしています Worksheets(Array("B2側壁⑯", "B2側壁⑰")).Delete ところが、削除するシートの数が決まっていない場合のArrayの作り方が 分かりません 例えば moji2 = Array("B2側壁⑯", "B2側壁⑰") Worksheets(moji2).Delete は上手く行くのでが Arrayの中を別の変数で組み立ててから行うとインデックスエラーになります moji1 = """B2側壁⑯""" & ", " & """B2側壁⑰""" moji2 = Array(moji1) Worksheets(moji2).Delete シートの数が任意なのでどうしても外で組み立てなければならないと思います 以上の解決方法が有りましたら教えてください 尚、For文で一つづつ削除するのではなくこの方法で何とかお願いします
質問日時: 2025/04/30 17:46 質問者: 公共ごま
ベストアンサー
2
0
-
【マクロ】シートの変数へ入れるコードがエラーとなるのはなぜでしょうか?
以下、コードにて、3つのシートを変数に入れるようとすると エラーとなります 改善方法ご存じの方は、教えてください 【シート名3つ】 シート名は あ い う 【エラーとなるコード】 Set ws = ThisWorkbook.Sheets("sheetNames(i)") 【コード】 Sub 転記先() Dim ws As Worksheet Dim sheetNames As Variant Dim i As Long sheetNames = Array("あ", "い", "う") For i = LBound(sheetNames) To UBound(sheetNames) Set ws = ThisWorkbook.Sheets("sheetNames(i)")
質問日時: 2025/04/27 15:39 質問者: aoyama-reiko
解決済
1
0
-
【マクロ】並び替えの範囲が、そのつど、変わる場合の範囲指定の方法について
表を時間(C1)の降順にて並び替えたいです 表は、つど、サイズが違います 開始行の項目はA1からH1やI1やK1などに変化します 行の数も、その都度、少なかったり多かったりします この場合の、表全体を範囲する場合にはどんな方法あがありますか? 教えて下さい なお、A1の以下、コードでも、ソートされている感じはあります 【条件】 A列とC列と開始行に歯抜けデータはないです 【コード】 Sub test() Range("A1").Sort Key1:=Range("c1"), order1:=xlDescending, Header:=xlYes End Sub
質問日時: 2025/04/20 16:15 質問者: aoyama-reiko
解決済
5
0
-
【マクロ】売上一覧YYYYMMDDHHSS.xls形式のブックをファイル名一覧から抽出⇒変数に入れる
【やりたい事】 以下画像をご覧ください 1C列に約5~10個のファイル名が並んでいる 2ファイル一覧から、売上一覧YYYYMMDDHHSS.xls 形式のファイル名をA2へ抽出(関数orマクロ) 3A2のファイル名前と、A4のシート名(変わらない)を変数に入れたいです ご存じの方、アドバイスorコードを教えて下さい 宜しくお願いします
質問日時: 2025/04/18 09:19 質問者: aoyama-reiko
解決済
5
0
-
【マクロ】開いているブックの名前を取得した後、名前をセルに1つづつ入力するには?
【やりたい事】 今、開いているExcelの名前を取得 A1セルからA10セルに、ファイル名前を入力したい 以下コードでは、ファイル名の一覧を1つのセルに入力してしまいます ファイル名1つにつき、1つのセルへ入力をしたいです ご存じの方、宜しくお願いします 【コード】 Sub GetAllWorkbookNames() Dim wb As Workbook Dim wbNames As String wbNames = vbCrLf For Each wb In Workbooks wbNames = wbNames & wb.Name & vbCrLf Next wb MsgBox wbNames Range("a1") = wbNames End Sub
質問日時: 2025/04/18 06:33 質問者: aoyama-reiko
解決済
2
0
-
Vba セルの4辺について罫線が有るかどうか調べたいのですが
いつもお世話様です セルの4辺について罫線の有無を調べたいのですが 下記のようにテストプログラムを作ってみましたがIF文でエラーになってしまいます Sub test() Cells(2, 5).BorderAround LineStyle:=xlContinuous, Color:=vbRed If Cells(2, 5).BorderAround.LineStyle <> xlNone Then MsgBox "有り" End If End Sub やっぱり、Edgeをひとつづつ調べないといけないのでしょうか? 簡単に一行で調べる方法は無いのでしょうか? 以上、よろしくお願い申し上げます
質問日時: 2025/04/04 10:49 質問者: 公共ごま
ベストアンサー
1
1
-
vbsでのwebフォームへの入力制限?
webフォームへの入力にvbsを用いています。 sendkeysを用いて入力するようにしています。 (ログイン用スクリプトとして検索して見つけたものをいじっています。) Set WshShell = CreateObject("WScript.Shell") id = "1234" pass = "abcd" name = "taro" WshShell.Sendkeys id WshShell.Sendkeys "{tab}" WshShell.Sendkeys pass WshShell.Sendkeys "{tab}" WshShell.Sendkeys name WshShell.Sendkeys "{tab}" ・・・ 上記はザックリと書いたもので誤りがあるかもしれません。 動作イメージだけご理解いただければと思います。 いくつか入力欄があるのですが、特定の特定の項目だけ入力が行われない事象がでてきました。 例えば WshShell.Sendkeys name のように文字列を変数で与えるとはフォームに入力が行われない。しかしながら WshShell.Sendkeys "taro" のように直接文字を指定すると入力される。 Sendkyesの直前に待機時間を設けても、変数で指定した場合にに限って入力が行われません。 変数に与える文字列に、+,^,%,{}などは含まれておらず、半角文字だけです。 なぜこのような事がおきるのか、原因として考えられる事を教えて下さい。
質問日時: 2025/04/03 23:07 質問者: zongai
ベストアンサー
1
1
-
エクセルのマクロについて教えてください。
下記のマクロを実行すると コピー元の指定した範囲をコピー先のして範囲にコピーできます、 コピー先には、各セルにチェックボックスがあり、下記のマクロでは各セルはコピーできますが、 チェックブックスがコピーできません、 コピー元の各セルとチェックボックス共コピーできる方法を教えてください。 各マクロです。 貼り付け総合 Call 提出シートコピー範囲マクロファイル含む Call 貼り付け End Sub Sub 提出シートコピー範囲マクロファイル含む() Dim folderPath As String Dim fileName As String Dim ws As Worksheet folderPath = ThisWorkbook.Path & "\" '作業フォルダ内にはマクロを設定しているコピー先のブックとコピー元の '○〇(提出用).xlsxの 2つ のExcelファイルしかありません。 fileName = Dir(folderPath & "*.xls?") Do While fileName <> "" If CheckName(fileName) = True Then Exit Do fileName = Dir() Loop If fileName <> "" Then '別ブック ○〇(提出用).xlsx Set Wb2 = Workbooks.Open(folderPath & fileName) On Error Resume Next Set ws = Wb2.Worksheets("提出シート") If Err.Number <> 0 Then MsgBox "コピー元ブックの提出シートが見つかりません" On Error GoTo 0 Wb2.Close False End End If 'セルの値を取得する ws.Range("B1:S220").Copy Else MsgBox "コピー元ブックが見つかりません": End End If End Sub Private Function CheckName(ByVal fileName As String) As Boolean CheckName = False If fileName = ThisWorkbook.Name Then Exit Function CheckName = True If LCase(Right(fileName, 5)) = ".xlsx" Then Exit Function If LCase(Right(fileName, 5)) = ".xlsm" Then Exit Function CheckName = False End Function Sub 貼り付け() Dim ws1 As Worksheet Set Wb1 = Workbooks(1) 'このブック On Error Resume Next Set ws1 = Wb1.Worksheets("受付") If Err.Number <> 0 Then MsgBox "コピー先ブックの受付シートが見つかりません" Application.CutCopyMode = False On Error GoTo 0 If Not Wb2 Is Nothing Then Wb2.Close False End End If Application.DisplayAlerts = False Application.EnableEvents = False ws1.Range("B1:S220").PasteSpecial Paste:=xlPasteValuesAndNumberFormats Application.CutCopyMode = False Application.EnableEvents = True Application.DisplayAlerts = True End Sub よろしくお願いいたします。
質問日時: 2025/03/29 10:44 質問者: エクセル小僧
ベストアンサー
1
0
-
エクセルの改行について
VBA(マクロ)の得意な人に質問です。ご協力お願い致します。 業務で必要となり、マクロが得意でない為、ご教授できる方いましたら何卒教えて頂けませんでしょうか。 (やりたい事) Excelの表を1ページ目は45行目の下、2パージ目以降は39行ごと (行84の下、行123の下、行162の下・・・)に改ページを入れたいです。 今はここまでできました。 これに改ページの処理を追加したいです。 よろしくお願いします。 Private Sub 全体_Click() 最初のページ = TextBox1.Value 最後のページ = TextBox2.Value 印刷部数 = TextBox3 Unload UserForm1 With ActiveSheet.PageSetup .PrintArea = "$A$1:$T$1020" .Orientation = xlLandscape .PaperSize = xlPaperA4 .Zoom = 65 .RightHeader = "" End With Application.Dialogs(xlDialogPrint).Show arg1:=2, arg2:=最初のページ, arg3:=最後のページ, arg4:=印刷部数 End Sub
質問日時: 2025/03/27 09:58 質問者: てぃだあぱあぱ
解決済
3
0
-
vb.net(vs2022)のtextboxのデザイン時と実行時の見た目の違いはなぜ?
vb.net(vs2022)のtextboxのデザイン時と実行時の見た目の違いはなぜ起こるのでしょうか? 画像左はデザイン時です コントロールを貼り付けて BorderStyleを上から ・None ・FixedSingle ・Fixed3D に設定しました 画像右は実行時です 3つ目のFixed3Dの見た目が変わってしまいます なぜ変わってしまうのでしょうか? vs2017で作成したものはデザイン時そのままで実行できます 昔の表示に戻ってしまったようで気になって気になって…
質問日時: 2025/03/19 16:08 質問者: letter-fin
解決済
2
0
-
エクセルのVBAコードと数式について教えてください。
B86に様々な物件が表示され、その物件名に様々なナンバー文字が含まれている場合に 「№」と置き換えが出来るように設定しました。 様々なナンバーのリストをK77:K136に設定してます。 セルB88に、数式「=ReplaceNumbers(B86,K77:K136)」を設定し 末尾の文字を削除出来るように設定してますが、 例えば B86に「北海太郎No_1」と表示された場合に B88に「北海太郎№_1」と表示されてしまします。 この表示を「北海太郎№1」と出来る方法を教えてください。 作業ブックの標準モジュールコード Function ReplaceNumbers(target As String, numbers As Range) As String Dim cell As Range Dim result As String Dim num As String result = target For Each cell In numbers num = cell.Value ' 末尾の記号を削除 num = RemoveTrailingSymbols(num) result = Replace(result, cell.Value, "№") Next cell ReplaceNumbers = result End Function Function RemoveTrailingSymbols(str As String) As String Dim symbols As String Dim i As Long symbols = "..、、,。__::--" ' 削除対象の記号を定義 For i = Len(str) To 1 Step -1 If InStr(symbols, Mid(str, i, 1)) = 0 Then RemoveTrailingSymbols = Left(str, i) Exit Function End If Next i RemoveTrailingSymbols = "" ' すべて記号の場合 End Function 以上となります。 よろしくお願いします。
質問日時: 2025/03/19 11:26 質問者: エクセル小僧
ベストアンサー
5
0
-
【マクロ】変数を使った、文字の種類の変更にて、エラーとなる。
【質問】 1番下のコードですが、以下の1行のみエラーとなります。他は動きます fc.Font.Name = "century" やりたい事は、Exact関数の結果⇒FALSEの文字の種類を、centuryに変更したいです 以下だと動くのですが、変数にすると動きません Range("A1").font.Name = "century" ご存じの方、教えて下さい 【コード。本サイトにてご指南頂いたコードを参考にして作りました】 Sub sample() Dim lastrow As Long lastrow = Cells(Rows.Count, "a").End(xlUp).Row Dim fc As Object '既存の条件付き書式があれば削除 Range("C1:k" & lastrow).FormatConditions.Delete '条件を設定して、オブジェクトに格納 Set fc = Range("C1:k" & lastrow).FormatConditions.Add(Type:=xlExpression, Formula1:="=EXACT(C1,""FALSE"")") '条件成立で、背景色を「赤色」 fc.Interior.Color = vbRed 'エラーとなります fc.Font.Name = "century" End Sub
質問日時: 2025/03/16 10:14 質問者: aoyama-reiko
ベストアンサー
1
0
-
エクセルのVBAコードについて教えてください。
作業シートに Private Sub Worksheet_Change(ByVal Target As Range) Sheets("消防の指摘一覧(参考資料)").Visible = [E114] = True End Sub を設定しております。 チェックボック15をにチェックを入れるとセルE114に「True」と表示され、 非表示シート「消防の指摘一覧(参考資料)」が表示できるように設定しましが、 チェックを入れても非表示シートが上手く表示されません。 又、セルE114に直接「True」と入力すると非表示シートが表示されました。 この解決方法を教えてください。 よろしくお願いいたします。
質問日時: 2025/03/15 12:33 質問者: エクセル小僧
ベストアンサー
1
1
-
ワードの図形にマクロを登録できる方法を教えてください。
作業乳のワードのブックに図形を表示させてその図形にマクロを登録させたいのですが、 エクセルのマクロ登録のように図形を右クリックして「マクロの登録」コマンドの表示がありませんので、図形にマクロを登録できる方法を教えてください。 例えば、図形でなくても構いません。 ブックの画面上に何かのボタンを登録して、そのボタンをクリックするとマクロが実行される方法でも構いません。 よろしくお願いします。
質問日時: 2025/03/12 15:52 質問者: エクセル小僧
ベストアンサー
3
0
-
【マクロ】切取りの場合、形式を選択して貼付が出来ない
以下、コードは、セルAを起点にある、複数データ(A1:C3)を全選択。 A10に値貼付をしています。コードは動きます しかし、CopyをCutに変更すると以下の行にて、エラーとなります cells(10,1).PasteSpecial Paste:=xlPasteValues ●コードをコピーから切取りに変更する事は出来る方法はありますか?● ご存じの方、アドバイス、コードをご教授の程、宜しくお願いします ※データの範囲は変動します。なので、全選択しています 【コード】 cells(1,1).CurrentRegion.Copy cells(10,1).PasteSpecial Paste:=xlPasteValues cells(1,1).CurrentRegion.clear
質問日時: 2025/03/09 10:13 質問者: aoyama-reiko
ベストアンサー
1
0
-
改行文字「vbCrLf」とは
改行時に使用する「vbCrLf」というコードが覚えられません。 この文字列には、どういう意味があるのでしょうか?
質問日時: 2025/03/05 23:33 質問者: アルムの森の木
ベストアンサー
1
0
-
ExcelVBAでパワポを操作したい
c:\work\test.pptxに出力されている1スライド1枚貼ってある写真を、 c:\work\yyy.pptxにある別の既存のスライドにそのまま最背面コピーしたいです。 ※元のtest.pptxスライドは空白スライドか、画像つきスライドが混ざる複数スライド構成 ※画像のサイズ等は変えずにコピーしたい 可能でしょうか?
質問日時: 2025/03/04 22:12 質問者: yunnenene
解決済
1
0
-
testファイル内にある複数のpngファイルを昇順に1スライド1枚ずつパワポに貼り付けたい
VBA初心者です。 タイトルにある通り、testファイル内にある複数のpngファイルを昇順に1スライド1枚ずつPowerPointに貼り付けたいと考えています。 ただ、下記を実行すると昇順ではなくランダムに貼り付けされてしまい困ってます。 どなたか解決策ご存じでしたら教えてください…! _______ Sub パワポに写真を一括貼り付け() Dim ppPres As PowerPoint.Presentation Dim ppApp As PowerPoint.Application Dim folderPath As String Dim extensions() As Variant Dim i As Integer Dim fileName As String Dim ppSlide As PowerPoint.Slide 'PowerPointアプリケーションを開始 Set ppApp = New PowerPoint.Application '新しいプレゼンテーションを作成 Set ppPres = ppApp.Presentations.Add '指定のフォルダから画像を読み込む folderPath = "C:\work\test" '拡張子の配列を定義 extensions = Array("png") '画像を格納する For i = LBound(extensions) To UBound(extensions) '画像のファイル名を取得 fileName = Dir(folderPath & "\*." & extensions(i)) '画像を1枚ずつ読み込んでスライドに貼り付け While fileName <> "" '新しいスライドを作成 Set ppSlide = ppPres.Slides.Add(ppPres.Slides.Count + 1, ppLayoutBlank) '画像を貼り付け ppSlide.Shapes.AddPicture folderPath & "\" & fileName, msoFalse, msoTrue, 0, 0 '次の画像のファイル名を取得 fileName = Dir() Wend Next i 'PowerPointを表示 ppApp.Visible = True End Sub ________
質問日時: 2025/03/03 19:03 質問者: yunnenene
ベストアンサー
3
0
-
エクセルVBA 検索結果を隣のシートの最終行に転記したい。
VBA初心者です。ワークシート2(ws2)で検索した検索結果(9行目B~E列に表示された値)を、ワークシート1(ws1)D~G列の最終行に貼り付けるにはどうしたらよいでしょうか? 単にws2の9行目の値(検索値ではない)をws1へ貼り付けることはできたのですが(下記)、検索結果のコードをどう書くのかわかりませんでした。下記をどのように書き換えればよいか教えていただきたく、どうぞよろしくお願いいたします。 Sub 転記() Dim ws1 As Worksheet Dim ws2 As Worksheet Set ws1 = Worksheets(1) Set ws2 = Worksheets(2) Dim lastRow As Long lastRow = ws1.Cells(Rows.Count,"d").End(xlUp).Row + 1 With ws1 .Cells(lastRow, 4) = ws2.RAnge("B9") .Cells(lastRow, 5) = ws2.RAnge("C9") .Cells(lastRow, 6) = ws2.RAnge("D9") .Cells(lastRow, 7) = ws2.RAnge("E9") End With End Sub
質問日時: 2025/02/28 17:01 質問者: ごんた33
解決済
6
0
-
Excelマクロで使うVBAコードをスプレッドシートのGoogle Apps Scriptに変換
Excelマクロで使用しているVBAコードをスプレッドシートのGoogle Apps Scriptに変換していただきたいです。 Sub hogo() 'ActiveSheet.Protect AllowFormattingCells:=True 'セル書式化 ActiveSheet.Protect AllowFormattingRows:=True '行を書式化 End Sub Sub 並び替え() ' ActiveSheet.Unprotect Rows("7:56").Select 'ActiveWorkbook.Worksheets("1").Sort.SortFields.Clear ActiveSheet.Sort.SortFields.Clear ActiveSheet.Sort.SortFields.Add Key:=Range("BE8:BE56"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveSheet.Sort .SetRange Range("A7:OS56") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Range("B8").Select On Error Resume Next 'ActiveSheet.Protect AllowFormattingCells:=True 'セル書式化 ActiveSheet.Protect AllowFormattingRows:=True '行を書式化 End Sub
質問日時: 2025/02/28 12:21 質問者: gogiradaisuki
ベストアンサー
1
0
-
Excelマクロで使うVBAコードをスプレッドシートのGoogle Apps Scriptに変換
Excelマクロで使用しているVBAコードをスプレッドシートのGoogle Apps Scriptに変換していただきたいです。 Sub 前半予定() Dim 列 As Long Dim 元 As Long Dim 終 As Long Dim 先 As Long Sheets("(予定15)").Cells.ClearContents Sheets("(使用しない1)").Select Range(Cells(1, 1), Cells(1, 12)).Copy Sheets("(予定15)").Cells(1, 1).PasteSpecial Paste:=xlPasteValues 先 = 2 列 = 1 Do While Cells(1, 列).Value <> "" If Cells(2, 列).Value <> "" Then 終 = 70 For 元 = 2 To 70 If Cells(元, 列).Value = "" Then 終 = 元 - 1 Exit For End If Next Range(Cells(2, 列), Cells(終, 列 + 11)).Copy Sheets("(予定15)").Cells(先, 1).PasteSpecial Paste:=xlPasteValues 先 = 先 + 終 End If 列 = 列 + 12 Loop Application.CutCopyMode = False Sheets("(予定15)").Select Cells.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes Call sakujyo Call CSV出力前半 End Sub
質問日時: 2025/02/27 21:22 質問者: gogiradaisuki
ベストアンサー
1
0
-
(EXCEL超初心者)EXCELの関数(またはマクロ)で質問です。
EXCELの関数(またはマクロ)で質問です。 EXCEL初心者で申し訳ございません。 離れた2列(画像ではA列とD列)で、対象行は必ず同じ行に存在し、同じシート1にあります。 シート1の行は作業の品質向上のため、自由に追加、削除がされます。 例では12行しかないですが、実際には100行近くあり、項目の抜け漏れチェックが難しい状況です。 シート2(下記サイトに上げています)に「この項目は必ずあってほしい項目」を設けておいて、 https://aoibasho.wixsite.com/aoibasho/excel6 シート1で行が追加されても、削除されてもチェックできるようにしたいです。 その際、例えばA2であればD2とセット、A3であればD3とセットでシート2の表と合うこと(A3とD4のセットではダメ) をチェックさせたいと考えています。 マクロか関数でいい方法をご教示ください。 申し訳ないのですが、マクロであれば全文(例えば、subからend subまですべて)教えてください。 どうぞよろしくお願いいたします。
質問日時: 2025/02/26 23:09 質問者: ナカシュン太郎
ベストアンサー
11
0
-
【マクロ】値を渡されたプロシージャから実行すると、渡したプロシージャを選択される?
Q1 以下の【値を渡されたコード】から、実行すると、プロシージャ選択画面が出ます 当該画面を出さないようには出来ますか??? ちなみに、モジュールには当該2つのコードしか記述ありません 【値を渡されたコード】 Sub あいうえお(ByRef ws As Worksheet) ws.Cells(1, 1) = "あいうえお" ws.Cells(1, 2) = "かきくけこ" End Sub Q2【値を渡されたコード】から実行し、Sub 別ブックへ転記()プローシジャを選択すると Sub あいうえお(ByRef ws As Worksheet)のプローシジャだけではなく、Sub 別ブックへ転記()プローシジャ も実行されてしまいます。当該、動きは仕様でしょうか??? イメージは、Sub あいうえお(ByRef ws As Worksheet)だけ実行したので、他のプローシジャは 実行されないのではないかという、印象があります 【コード】 Sub 別ブックへ転記() Dim filpath1 As String Dim wb1 As Workbook Dim ws1 As Worksheet filepath1 = ThisWorkbook.Worksheets("Sheet1").Cells(141, 1) Set wb1 = Workbooks.Open(filepath1) Set ws1 = wb1.Worksheets("Sheet1") ws1.Cells(2, 1) = "xxx" Call あいうえお(ws1) End Sub ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Sub あいうえお(ByRef ws As Worksheet) ws.Cells(1, 1) = "あいうえお" ws.Cells(1, 2) = "かきくけこ" End Sub
質問日時: 2025/02/23 12:18 質問者: aoyama-reiko
ベストアンサー
2
0
-
【マクロ】モジュール変数の記述時、Callにて、呼び出されたプロシージャから実行するとエラーとなる?
Q1標題の件、以下コード❶より実効すると、エラーとなります モジュール変数の場合は、呼び出し側から実行しないといけないルールですか??? 【Callステートメントにて呼び出されたコード❶】 Sub あいうえお() ws1.Cells(1, 1) = "あいうえお" End Sub Q2以下の共通コードを、1回だけしか書かないで、例えば5つのCallで呼び出す プロシージャで、共同利用する為には、値渡しが有効ですか??? 下記の例は、Callが1つしかありません。しかし、実際は5つ位を予定しています 【共通コード】 Dim filpath1 As String Dim wb1 As Workbook Dim ws1 As Worksheet filepath1 = ThisWorkbook.Worksheets("Sheet1").Cells(141, 1) Set wb1 = Workbooks.Open(filepath1) Set ws1 = wb1.Worksheets("Sheet1") 【コード】 Dim filpath1 As String Dim wb1 As Workbook Dim ws1 As Worksheet ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Sub モジュール変数() filepath1 = ThisWorkbook.Worksheets("Sheet1").Cells(141, 1) Set wb1 = Workbooks.Open(filepath1) Set ws1 = wb1.Worksheets("Sheet1") Call あいうえお End Sub ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Sub あいうえお() ws1.Cells(1, 1) = "あいうえお" End Sub
質問日時: 2025/02/23 11:57 質問者: aoyama-reiko
ベストアンサー
2
0
-
Vba Declare Functionを使う環境依存文字が化ける
いつもお世話になります DocuWorksの出力ファイルを操作する際、Declare Functionを使うのですが 環境依存文字を使ったファイルのハンドルを取るときなどに、ファイル名がFunctionの中で 化けているようでうまく行きません (宣言例) '2.64 XDW_OpenDocumentHandle DocuWorksファイルにアクセスするためのハンドルを得る。この場合だけ、pHandleはByRefで定義 Public Declare PtrSafe Function XDW_OpenDocumentHandle Lib "xdwapi.dll" (ByVal lpszFilePath As String, ByRef pHandle As LongPtr, ByRef pMode As XDW_OPEN_MODE) As LongPtr Public Type XDW_OPEN_MODE nSize As Long nOption As Long End Type '2.6 XDW_CloseDocumentHandle DocuWorksファイルにアクセスするためのハンドルを解放する。 Public Declare PtrSafe Function XDW_CloseDocumentHandle Lib "xdwapi.dll" (ByVal handle As LongPtr, ByVal reserved As String) As LongPtr (使用例) '...DocuWorksファイルにアクセスするためのハンドルを得る。 XDW_OpenDocumentHandle FileInfo(1), lngHandle, myMode '...FileInfo(1)のファイル、最終ページにFileInfo(2)以降の図面を挿入する。 XDW_InsertDocument lngHandle, myInfo.nPages + 1, FileInfo(k), vbNullString ファイル名は変数、FileInfo(k)になります 今は、環境依存文字を見つけて一度、変換して処理して終了後に元戻す方法を考えています これは、あきらめてファイル名を変更するしかないですか? 何か参考になることが有りましたら教えてください 以上、宜しくお願い申し上げます
質問日時: 2025/02/22 15:15 質問者: 公共ごま
ベストアンサー
2
1
-
Excelのマクロについて教えてください。
マクロを実行するとOutlookメールを送信できます。 コードはマクロの一部のコードです。 Toをセル値「V1」 CCををセル値「X1」 BCCををセル値「Z1」 に設定したメールアドレスでメールを送信できるようにしております。 この設定のCCとBCCを複数設定する方法を教えてください。 CCををセル値「X1」「X2」「X3」 BCCををセル値「Z1」から「Z12」 としたいです。 例えば CCをを("X1:X3")と設定するとエラーが出て上手くマクロを実行できませんでした。 現状のコード '宛先 add = .Range("V1").Value add = Mid(add, InStr(add, ":") + 1, Len(add) - InStr(add, ":")) omail.To = add add = .Range("X1").Value add = Mid(add, InStr(add, ":") + 1, Len(add) - InStr(add, ":")) omail.CC = add add = .Range("Z1").Value add = Mid(add, InStr(add, ":") + 1, Len(add) - InStr(add, ":")) omail.BCC = add 以上となります。 よろしくお願いいたします。
質問日時: 2025/02/21 13:20 質問者: エクセル小僧
ベストアンサー
1
0
-
Excelのマクロについて教えてください。
マクロのコード内に 指定セル値設定しておりますが、 例えば add = .Range("V1").Value omail.Subject = .Range("AG1") '件名 & .Range("AG3").Value & vbCrLf _ のコードがあります。 このコードのままだと 作業シートに指定セルを設定する事が必要ですが、 このコードの指定シートを 「省エネリスト」 と指定できる方法を教えてください。 よろしくお願いいたします。
質問日時: 2025/02/21 11:56 質問者: エクセル小僧
ベストアンサー
1
0
-
Excelのマクロについて教えてください。
下記のマクロを実行すると ダイアログが表示されて、保存先フォルダを指定し、指定セル値をファイル名として作業ブックを保存、 元の作業ブックはそのままで削除されません。 このマクロを ダイヤログが表示されないで、作業フォルダ内に保存できるように変更する方法を教えてください。 現状のマクロ Sub 業者用日付を更新して保存() On Error Resume Next Application.DisplayAlerts = False Const folder As String = "\\nas-sp01\share\確認部\電子申請 関連\1.受付\1.確認申請\" Dim newName As Variant Dim initName As String initName = folder & Range("W2").Value newName = Application.GetSaveAsFilename(InitialFileName:=initName, FileFilter:="Excel マクロ有効ブック(*.xlsm), *.xlsm") If newName = False Then Exit Sub Dim ws As Worksheet Dim TargetCheck As String Dim List As Variant Dim i As Long Dim Chk As Boolean 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 ThisWorkbook.SaveAs newName, xlOpenXMLWorkbookMacroEnabled Application.ScreenUpdating = True Application.Quit With ThisWorkbook .Saved = True .Close False End With End Sub 以上となります。 よろしくお願いいたします。
質問日時: 2025/02/20 15:58 質問者: エクセル小僧
ベストアンサー
1
0
-
Vba FileSystemObject オブジェクトに使って拡張子、BaseNameを取り出す
いつもお世話になります 今、下記のプログラムでファイル一覧を取り出すテストをしていたのですが 拡張子や拡張子を除くファイル名の取り出しをスマートに記述できないかと思い投稿しました Sub Test5() Dim MyFile As Object Dim cnt As Integer Dim FilePath As String Dim FSO As Object Set FSO = CreateObject("Scripting.FileSystemObject") FilePath = "XXXXXXXXX" cnt = 1 For Each MyFile In FSO.GetFolder(FilePath).Files ' セルにファイル情報を書き出し Cells(cnt, 1).Value = MyFile.Name ' ファイル名 Cells(cnt, 2).Value = MyFile.DateCreated ' 作成日時 Cells(cnt, 3).Value = MyFile.Size ' ファイルサイズ Cells(cnt, 4).Value = FSO.GetBaseName(MyFile.Name) ' BaseName Cells(cnt, 5).Value = FSO.GetExtensionName(MyFile.Name) ' 拡張子 cnt = cnt + 1 Next MyFile Columns("A:E").AutoFit Set FSO = Nothing End Sub 例えば、ファイル名はMyFile.Nameで取得できますがMyFile.BaseNameは出来ませんでした そこでFSO.GetBaseName(MyFile.Name)にしています、拡張子も同様で何かありそうで Webで調べてみましたが分かりませんでした MyFile.??? で拡張子やBaseNameが取れたらスマートなのにと思い相談します もし分かりましたら教えてください 以上、宜しくお願い申し上げます
質問日時: 2025/02/20 14:53 質問者: 公共ごま
ベストアンサー
2
0
-
ダブルクリックで貼り付けた画像からリンクのみ削除し、画像を残したい。
Excelのシートに以下のマクロを組みましたが、空白でダブルクリックして、写真選択。 写真をダブルクリックで貼付けまではいいのですが、画像にリンクが設定されてしまい、 元データを削除すると、貼り付けた画像まで消えてしまいます。 マクロは、詳しくないので、貼り付ければいいようにお願いいしたいです。 よろしくお願い致します。 <下記に構文を添付> Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) ' ターゲットセルが指定したセル(A2, C2, A4, C4, A6, C6)のいずれでもない場合、CancelをTrueに設定します。 Cancel = True ' ターゲットセルが指定したセル(A2, C2, A4, C4, A6, C6)のいずれかであれば、処理を実行します。 If Not Intersect(Target, Union(Range("ar2:ar20"), Range("at2:at20"), Range("av2:av20"), Range("ax2:ax20"), Range("az2:az20"), Range("bb2:bb20"), Range("bd2:bd20"), Range("bf2:bf20"), Range("bh2:bh20"), Range("bj2:bj20"), Range("bl2:bl20"))) Is Nothing Then ' ファイル選択ダイアログを作成します。 Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) With fd .Title = "Select an Image File" ' ダイアログのタイトルを設定します。 .Filters.Clear ' 既存のフィルターをクリアします。 .Filters.Add "Image Files", "*.GIF; *.JPG; *.JPEG; *.BMP; *.PNG; *.TIF", 1 ' 画像ファイルのフィルターを追加します。 ' ダイアログで画像が選択されたら、その画像をダブルクリックされたセルに挿入します。 If .Show = -1 Then Dim Picture As Picture Set Picture = ActiveSheet.Pictures.Insert(.SelectedItems(1)) ' 挿入した画像のサイズと位置をダブルクリックされたセルに合わせます。 With Picture With .ShapeRange .LockAspectRatio = msoFalse .Width = Target.Width * 0.85 .Height = Target.Height * 0.9 'セルの中央(横方向/縦方向の中央)に配置 .Left = Target.Left + (Target.Width - .Width) / 2 .Top = Target.Top + (Target.Height - .Height) / 1.5 End With Application.ScreenUpdating = True Cancel = True .Placement = xlMoveAndSize End With End If End With End If 変更箇所をお願いします。
質問日時: 2025/02/20 09:55 質問者: 親子丼888円
解決済
2
0
-
VBAの質問(Msgboxについて)です
VBA質問です。 下記のようにマクロを作りました。E2、E3、E4、E5、E6とそれぞれのセルに×が入っているときに、メッセージを出し、 〇が入っているときはメッセージを出したくありません。 また、A1に入ったタイトル名、B2、B3、B4、B5、B6とそれぞれのセルに入れた項目名(間違ったものが入っているものもある)をそれぞれ出したいのですが、マクロを実行するとB2の項目ばかり出てしまい困っています。 ※C列(C2以降)はA列(A2以降)に入った項目名とB列(B2以降)に入った項目名を結合する列として使っています。D列は都合により空欄としています。 また、E列に〇が入っているときだけメッセージが出て、×が出ているものはメッセージ表示されません。 どうしたらいいでしょうか。 どうぞよろしくお願いいたします。 Sub チェッカーMsgbox01() 'セルの値とアイコンを表示する Dim I, C As Long Dim J, D As Long Dim result As Range Dim msg As String For I = 2 To 6 '2行目~6行目まで繰り返します Set result = Range("E" & I) If result = "×" Then MsgBoxVisible = True MsgBox (Range("B" & I) & vbCrLf & Range("B" & I) & vbCrLf & Range("B" & I) & vbCrLf & Range("B" & I) & vbCrLf & Range("B" & I)) & vbCrLf, vbCritical 'メッセージボックスにA列の「名前」、「アイコン」を表示します。 End If Next I For J = 2 To 6 '2行目~6行目まで繰り返します Set result = Range("E" & J) If result = "〇" Then MsgBoxVisible = False MsgBox (Range("B" & J) & vbCrLf & Range("B" & J) & vbCrLf & Range("B" & J) & vbCrLf & Range("B" & J) & vbCrLf & Range("B" & J)) & vbCrLf, vbInformation 'メッセージボックスにA列の「名前」、「アイコン」を表示します。 End If Next J MsgBoxVisible = True MsgBox "チェック結果は以上です" End Sub
質問日時: 2025/02/19 07:07 質問者: ナカシュン太郎
ベストアンサー
2
0
-
エクセルVBA 段落番号自動取得方法
C~G列に文字列が入力されてからプログラムを実行後、B列に画像のような段落番号を表示させる方法がございましたらご教授お願いします。 画像の、"1","2","3"は表示できるようになりましたが、”2.1”や”3.1.1"など階層が深くなるとうまくいかなくて困っています。よろしくお願いいたします。
質問日時: 2025/02/18 13:24 質問者: まさゆき1016
ベストアンサー
5
1
-
Excelのマクロについて教えてください。
下記のマクロを実行すると 指定フォルダ内に指定シートと指定セル値をファイル名として、保存され、マクロ設定ブックはそのままの状態ですが、 このマクロを、 マクロを実行した時に 指定フォルダ内に指定シートと指定セル値をファイル名として、 作業ブックに上書き保存され、ブックをクローズできるように変更する方法を教えてください。 よろしくお願いいたします。 現状のマクロ Sub Macro1() Const fol As String = "\\nas-sp01\share\確認部\■意匠\戸建\戸建て電子申請関連\ひな形\" Dim fname As String, fPath As String Dim exte As String fname = Worksheets("省エネチェック").Range("W1").Text exte = ".xltm" fPath = fol & fname & exte ThisWorkbook.SaveAs Filename:=fPath, FileFormat:=xlOpenXMLTemplateMacroEnabled End Sub 以上となります。 よろしくお願いいたします。
質問日時: 2025/02/17 13:02 質問者: エクセル小僧
ベストアンサー
4
0
-
ExcelのVBAコードについて教えてください。
ThisWorkbookに下記のコードを設定しており 最初のメッセージで「 MsgBox("解凍してよろしいですか?"」 「YES」をクリックすると マクロ「Call 解凍」が実行され 次のメッセージ「 MsgBox("軽微・フラットを確認してよろしいですか?"」 が表示されて 「YES」をクリックすると マクロ Call 軽微 Call フラット Call 交付用名前変更 Call 削除 が実行されます。 最初のメッセージ「 MsgBox("解凍してよろしいですか?"」で 「NO」をクリックすると 次のメッセージが表示されず、 マクロ Call 軽微 Call フラット Call 交付用名前変更 Call 削除 が実行されません。 最初のメッセージ「 MsgBox("解凍してよろしいですか?"」で 「NO」をクリックすると 次のメッセージが表示され、 マクロ Call 軽微 Call フラット Call 交付用名前変更 Call 削除 が実行される方法を教えてください。 現状のコード Private Sub Workbook_Open() Dim alert As VbMsgBoxResult alert = MsgBox("解凍してよろしいですか?", vbYesNo + vbQuestion, "解凍確認") If alert <> vbYes Then Exit Sub End If Call 解凍 alert = MsgBox("軽微・フラットを確認してよろしいですか?", vbYesNo + vbQuestion, "軽微・フラット確認") If alert <> vbYes Then Exit Sub End If Call 軽微 Call フラット Call 交付用名前変更 Call 削除 End Sub 以上となります。 よろしくお願いいたします。
質問日時: 2025/02/14 09:24 質問者: エクセル小僧
ベストアンサー
1
0
-
えくせるのVBAコードについて教えてください。
作業ブックのシートに 下記のコードを設定しております。 セルD19を不特定に変更した場合に マクロ「申請の流れ着工日コピー」が実行されます。 このコードを 指定セルD19を不特定に変更した場合 且つ 指定セルB20に不特定の日付が表示された場合に のみ マクロ「申請の流れ着工日コピー」が実行できる方法を教えてください。 現状のマクロ Private Sub Worksheet_Change(ByVal Target As Range) ' 着工日等コピー If Target.Address = "$D$19" Then Call 申請の流れ着工日コピー End If End Sub 以上となります。 よろしくお願いいたします。
質問日時: 2025/02/12 11:36 質問者: エクセル小僧
ベストアンサー
1
0
-
エクセルのVBAコードについて教えてください。
作業ブックに下記のコードを設定しております。 各指定セル("B20", "F20", "H20")にそれぞれ日付が表示されると、設定マクロが実行できますが、 セル("H20")に日付を表示し、そのほかの("B20", "F20",)に日付を表示していないのに マクロが実行されてしまいます。 指定セル("B20", "F20", "H20")全てに日付が表示された場合のみにマクロを実行できる 方法を教えてください。 現状のマクロ Private Sub Worksheet_Change(ByVal Target As Range) ' ケース1 Dim checkRanges As Variant checkRanges = Array("B20", "F20", "H20") Dim isTargetChange As Boolean isTargetChange = False Dim checkRange As Variant For Each checkRange In checkRanges If Not Intersect(Target, Range(checkRange)) Is Nothing Then isTargetChange = True Exit For End If Next If Not isTargetChange Then Exit Sub If Range("B20").Value <= CDate("2025年3月31日") And _ Range("F20").Value <= CDate("2025年3月31日") And _ Range("H20").Value > CDate("2025年3月31日") Then Call 申請の流れ改正前1図表示 Call 申請の流れ改正後2図表示 Call 申請の流れケース1図表示 Call 申請の流れケース2図非表示 Call 申請の流れケース3図非表示 Call 申請の流れケース4図非表示 Call 申請の流れケース5図非表示 Call 申請の流れケース6図非表示 Call 申請の流れ施行日以降ケース図非表示 End If End Sub 以上です。 よろしくお願いいたします。
質問日時: 2025/02/11 15:53 質問者: エクセル小僧
ベストアンサー
1
1
-
VBAの「To」という語句について
1 To 3と書いた時、 ・For i=1 To 3:1と2と3を意味する(小数点は含まない) ・Case 1 To 3:1から3を意味する(小数点も含む) など、その時々で意味が違うので、混乱します。 皆さんは、どうやって覚えていますか?
質問日時: 2025/02/09 22:32 質問者: アルムの森の木
ベストアンサー
5
0
-
VBAでFOR NEXT分を Application.OnTimeを使って
Sub 練習2() Dim i As Long Dim j As Long For i = 1 To 20 j = i + 20 Cells(i, 1).Value = j Next End Sub ' Application.OnTime Now + TimeValue("00:00:05")の一文をいれて 5秒間隔でFOR文を動かしたいのですが考え方がわからずうまく動きません 完成形だとどの様な構文か教えてください。イメージとしてはセルに数字が入ったら5秒待って次の下のセルに+1の数字が入るのを繰り返すような
質問日時: 2025/02/08 21:21 質問者: goo_january
ベストアンサー
2
0
-
算術演算子「¥」の意味について
VBAには、Microsoftの公式リファレンスに掲載されていない算術演算子「¥」というのがあるようです。 その意味が分かる方がいらっしゃいましたら、ご教示頂けますとありがたいです。
質問日時: 2025/02/08 20:38 質問者: アルムの森の木
ベストアンサー
4
0
-
Excelのマクロについて教えてください。
作業ブックに下記のマクロを設定しております。 先日PCをWindows10からWindows11のVersionアップしまし処、 このマクロを実行する事が出来なくなりました。 解決方法を教えてください。 尚、コード中の「= "LBP8710 on Ne02:"」部分を「= "LBP8710 on Ne01:"」等に変更しても ダメでした。 よろしくお願いいたします。 現状のマクロ Sub 青紙印刷() '通常のプリンタを記憶 Dim myPrinter As String myPrinter = Application.ActivePrinter Sheets(Array("昇降機【青紙】(表面)", "昇降機【青紙】(裏面)")).Select Sheets("昇降機【青紙】(表面)").Activate Application.ActivePrinter = "LBP8710 on Ne02:" ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _ IgnorePrintAreas:=False 'プリンタを元に戻す Application.ActivePrinter = myPrinter End Sub 以上となります。 よろしくお願いいたします。
質問日時: 2025/02/07 08:55 質問者: エクセル小僧
ベストアンサー
5
0
-
以下のプログラムの実行結果はどうなると思いますか? その理由も教えてください。
Sub Sample() Dim MyDate As String MyDate = "abc" MsgBox IIf(IsDate(MyDate) = True, CDate(MyDate), "?") End Sub
質問日時: 2025/01/31 17:11 質問者: アルムの森の木
ベストアンサー
4
0
-
エクセルのマクロについて教えてください。
下記のマクロを作成したいのですが、 どのようにコードを設定してよいかがわかりません、 親切にコード共教えていただける方、何卒宜しくお願い致します。 私の行いたいことを下記に列記いたします。 マクロを実行すると指定セルの文章の中の特定の文字だけを色付け(赤文字)にできる方法を教えてください。 宜しくお願い致します。 文章がある指定セルは 「C25」「D25]「E25」になります。 ‘検索して文字色を変更する特定文字は 「軽微な変更説明書」 建設評価 「変更申告書」 「軽微該当証明書」 上記文字の「」は有りです。 このVBAはあるセルを操作するたびに実行できるように設定しておりますので、 同じマクロを何度も実行しても、 キーワード以外の文字色が変更にならないようにしたいのです。 何卒、宜しくお願い致します。
質問日時: 2025/01/30 17:55 質問者: エクセル小僧
ベストアンサー
3
0
-
Vba WorkBooks.Openについて教えてください
いつもお世話になります 今、下記のプログラムをアドイン化してクイックアクセスツールバーに登録しました Sub test() Workbooks.Open "C:\temp\Sample.xlsx" End Sub 一度、Excelをすべて閉じてExcelアイコンから新規のExcelを開き、クイックツールバーから 上記のプログラムを実行すると、新規のファイルは消えてSampleの画面が表示されます しかし、プログラム実行前に新規のExcelのセルに一文字でも入力したりしてアクションしてから プログラムを実行すると新規の画面は消えず、Sampleの画面が表示されます これは、アイコンから新規の画面を開いただけではBookと認識されていないのですか? Bookの存在を調べるとBook1と出てきます(アクションを起こした後の名前も同じ) 何もアクションを起こしていないBookなのか、既存のBookなのか? もし判定方法が分かりましたら教えてください? WorkBooks.Openのオプションでも構いません 以上、宜しくお願い致します
質問日時: 2025/01/30 12:23 質問者: 公共ごま
ベストアンサー
2
0
-
質問58753 このコードでうまく動作しません。どうしたら良いですか Private Sub Wor
質問58753 このコードでうまく動作しません。どうしたら良いですか Private Sub Worksheet_Change(ByVal Target As Range) Dim ws As Worksheet Dim mapping As Object Dim targetCell As Range Dim currentValue As String, prefix As String Dim cell As Range ' シートを指定(適宜変更) Set ws = ThisWorkbook.Sheets("Sheet1") ' DセルとBセルの対応関係 Set mapping = CreateObject("Scripting.Dictionary") mapping.Add "D3", "B80" mapping.Add "D4", "B82" mapping.Add "D6", "B85" mapping.Add "D8", "B87" mapping.Add "D12", "B90" mapping.Add "D21", "B92" mapping.Add "D25", "B94" mapping.Add "D29", "B96" mapping.Add "D31", "B98" mapping.Add "D1", "B100" mapping.Add "D2", "B102" mapping.Add "D9", "B104" mapping.Add "D11", "B106" mapping.Add "D33", "B108" ' 変更されたセルが D1:D33 以外の場合は処理しない If Intersect(Target, ws.Range("D1:D33")) Is Nothing Then Exit Sub ' 変更されたセルが複数ある場合は処理しない(Ctrl + V でも動作するが安全策) If Target.Cells.Count > 1 Then Exit Sub On Error GoTo ErrorHandler ' エラーハンドリング開始 Application.EnableEvents = False ' ① 指定セルが空白なら色を付ける Dim rngYellow As Variant, rngBlue As Variant, rngGreen As Variant rngYellow = Array("D3", "D4", "D6", "D8", "D12") rngBlue = Array("D1", "D2", "D9", "D11", "D33") rngGreen = Array("D21", "D25", "D29", "D31") ' 黄色のセル(D3, D4, D6, D8, D12) For Each cell In rngYellow If ws.Range(cell).Value = "" Then ws.Range(cell).Interior.Color = RGB(255, 255, 0) ' 黄色 Else ws.Range(cell).Interior.ColorIndex = xlNone ' 色リセット End If Next cell ' 青色のセル(D1, D2, D9, D11, D33) For Each cell In rngBlue If ws.Range(cell).Value = "" Then ws.Range(cell).Interior.Color = RGB(0, 0, 255) ' 青色 Else ws.Range(cell).Interior.ColorIndex = xlNone ' 色リセット End If Next cell ' 緑色のセル(D21, D25, D29, D31) For Each cell In rngGreen If ws.Range(cell).Value = "" Then ws.Range(cell).Interior.Color = RGB(0, 255, 0) ' 緑色 Else ws.Range(cell).Interior.ColorIndex = xlNone ' 色リセット End If Next cell ' ② Bセルの「:」の後ろにDセルの値をセット If mapping.exists(Target.Address(False, False)) Then Set targetCell = ws.Range(mapping(Target.Address(False, False))) currentValue = targetCell.Value ' 「:」の位置を探す If InStr(currentValue, ":") > 0 Then prefix = Left(currentValue, InStr(currentValue, ":")) ' 「:」までの部分を取得 If Target.Value = "" Then ' Dセルが空なら「:」の後ろを消去 targetCell.Value = prefix Else ' Dセルに値がある場合は「:」の後ろに値をセット targetCell.Value = prefix & " " & Target.Value End If Else ' 万が一「:」がない場合の処理 If Target.Value = "" Then targetCell.Value = "" Else targetCell.Value = Target.Value End If End If End If ' ③ 貼り付け時の書式設定 For Each cell In Target ' フォント設定(UDPゴシックが存在する場合のみ適用) On Error Resume Next cell.Font.Name = "UDPゴシック" On Error GoTo 0 ' フォントが存在しない場合のエラーを無視して続行 ' セルの格子線をつける With cell.Borders .LineStyle = xlContinuous .Weight = xlThin End With ' 中央揃え(水平 & 垂直) cell.HorizontalAlignment = xlCenter cell.VerticalAlignment = xlCenter Next cell ExitHandler: Application.EnableEvents = True Exit Sub ErrorHandler: ' エラーが発生した場合、イベントを有効に戻して終了 MsgBox "エラーが発生しました:" & Err.Description, vbExclamation, "エラー" Resume ExitHandler End Sub
質問日時: 2025/01/30 08:17 質問者: ゆだよ
解決済
5
0
-
エクセルのマクロについて教えてください。
作業ブックに下記のマクロを設定しております。 Sub 各シートセル位置指定() Sheets("新築").Select Range("A5").Select Sheets("変更").Select Range("A5").Select 途中省略 Sheets("増築").Select Range("A5").Select End Sub 各シートの各セル位置を設定できるようになっております。 しかし 例えば シート("新築")("増築")が表示されている場合はマクロが実行されますが、 シート("変更")が非表示の場合はエラーメッセージが表示されて上手くマクロが実行 できません。 ブックの作業の方法によってシートが表示されたり非表示になったりします。 解決方法を教えていただけますか。 一つの方法として、非表示シートを一度、すべて表示にしてから、 このマクロを実行する方法があると思いますが、それ以外の方法はありますでしょうか。 宜しくお願い致します。
質問日時: 2025/01/29 15:19 質問者: エクセル小僧
ベストアンサー
4
0
-
Excelマクロで、ピボットテーブルを起動して、月別売上表を作成したい
Excelのマクロのを使って、売上表から、マクロで、ピボットテーブルを起動して、月別売上表を自動作成したいですが、可能でしょうか? 可能でしたら、マクロのコードをどのように書けばよいか、ご教授をお願いいたします。 想定している操作は次のようです。 1. ピボットテーブルに読み込むデータの範囲は、マクロ起動前に、関数を使ってデータの件数を検出して、たとえば、売上表のセル”E1”に与え、表示しておく。 2. 写真の例では、読み込み開始位置のセルは”B3”、終了位置は”D21”をl売上表”E1”に与え、表示しておく。 3. ピボット作成マクロを起動して、ピボットテーブルを起動させて、テーブル読み込み範囲が設定してあるセル”E1”を参照して、範囲情報を取得する(B3:D21)。 4. ピボットに、ラベルを月別と金額をマクロで指定する。 5. これらにより、「月別表」というシートに、ピボットテーブルの表が表示され完成する。 よろしくお願いいたします。
質問日時: 2025/01/28 20:10 質問者: LuckyX
ベストアンサー
2
0
-
エクエルのVBAコードについて教えてください。
作業ブックに下記のコードを設定してます、 例えば 日付D6<=日付F6 日付D6>日付F6 日付D10<=日付F10/の条件が揃た時にマクロ「増築3月31日以前図表示」が実行できるように設定しましたが、このコードではうまくマクロが実行されません。 解決方法を教えてください。 現状のコード Private Sub Worksheet_Change(ByVal Target As Range) Dim checkRanges As Variant checkRanges = Array("D6", "D8", "D10") Dim isTargetChange As Boolean isTargetChange = False Dim checkRange As Variant For Each checkRange In checkRanges If Not Intersect(Target, Range(checkRange)) Is Nothing Then isTargetChange = True Exit For End If Next If Not isTargetChange Then Exit Sub If Range("D6").Value <= CDate("F6") And _ Range("D8").Value > CDate("F8") And _ Range("D10").Value <= CDate("F10") Then End If Call 増築3月31日以前図表示 End Sub 以上となります。 よろしくお願いいたします。
質問日時: 2025/01/26 13:04 質問者: エクセル小僧
ベストアンサー
5
0
-
ベストアンサー
2
0
-
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
解決済
3
0
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
【Visual Basic(VBA)】に関するコラム/記事
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでユーザーフォームを指定回数繰...
-
【ExcelVBA】5万行以上のデータ比...
-
VBAでCOPYを繰り返すと、処理が途中...
-
【VBA】 結合セルに複数画像とファ...
-
【マクロ】シートの変数へ入れるコ...
-
Excel VBA 選択範囲の罫線色の変更...
-
【マクロ】売上一覧YYYYMMDDHHSS.xl...
-
vbsでのwebフォームへの入力制限?
-
エクセルのマクロについて教えてく...
-
Excelのマクロについて教えてくださ...
-
Vba Array関数について教えてください
-
Vba セルの4辺について罫線が有るか...
-
改行文字「vbCrLf」とは
-
ダブルクリックで貼り付けた画像か...
-
【マクロ】並び替えの範囲が、その...
-
【マクロ】開いているブックの名前...
-
エクセルの改行について
-
エクセルのVBAコードと数式について...
-
算術演算子「¥」の意味について
-
Excelのマクロについて教えてくださ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vba セルの4辺について罫線が有るか...
-
vbsでのwebフォームへの入力制限?
-
【ExcelVBA】5万行以上のデータ比...
-
【マクロ】売上一覧YYYYMMDDHHSS.xl...
-
【マクロ】開いているブックの名前...
-
【マクロ】並び替えの範囲が、その...
-
エクセルの改行について
-
エクセルのマクロについて教えてく...
-
vb.net(vs2022)のtextboxのデザイン...
-
VBAでCOPYを繰り返すと、処理が途中...
-
VBA ユーザーフォーム ボタンクリッ...
-
エクセルのVBAコードと数式について...
-
エクセルのVBAコードについて教えて...
-
[VB.net] ボタン(Flat)のEnable時の...
-
【マクロ】変数を使った、文字の種...
-
改行文字「vbCrLf」とは
-
質問58753 このコードでうまく動作...
-
【マクロ】シートの変数へ入れるコ...
-
ワードの図形にマクロを登録できる...
-
算術演算子「¥」の意味について
おすすめ情報