end-u の回答履歴

全1157件中961~980件表示
  • Excel 2003 VBAにてマクロの実行中にESCキーにて中断されないようにしたい

    Excel 2003 にてマクロの実行中にESCキーを押されるとコードの実行が中断されるのを抑制したいのですができません。 シートに直接テキストボックスコントロールを貼り付けています。 そのテキストボックスにKeyDownイベントプロシージャを記述しています。 テキストボックスにIMEの全角文字を入力中(未確定状態)の時に、ESCキーを押すとコードの実行を中断しましたというダイアログが出てしまいます。 KeyDownイベントプロシージャの内容の有無にかかわらず(処理は無記入でも)、ESCキーを押すとダイアログが表示されてしまいますので、ESCキーを押してもダイアログが表示されず処理が中断されない方法はありませんでしょうか。 調べましたところ、 Application.EnableCancelKey = xlDisabled にてESCキーを無効にする事ができるそうなのですが、BOOKを開いた時のイベントにて 上記コードを記載しているのですが、抑制はできません。 何かしら別の方法で対応などはできないものなのでしょうか。 よろしくご教示をお願い申し上げます。

  • 特定のシートが削除されたときにラベルを非表示にしたい

    現在Excel VBAでの開発を行っている者です。 そこで、特定のシートを削除したときにラベルを非表示したいのですが、どうしたらいいかわかりません。 どなたかご教授していただけないでしょうか??

  • マクロを作成したファイルを立ち上げたときの処理

    こんにちは、いつも勉強させてもらっています。 さて、今回はマクロを作成したファイルを開くと、【ファイルが見つかりません】という処理になってしまうので質問させてもらいました。 プログラムの内容は次の通りです。 --------------- Private Sub Workbook_Open() Worksheets("入力フォーム").Activate 修理報告書ナビ.Show vbModeless End Sub --------------- これしか書いていないのに、ファイルを見つけにいって上記のようにコメントされてしまいます。 閉じるにすれば特に問題はないのですが、閉じるにする処理も面倒なもので・・・。 理由もしくはそれをなくす方法がわかりません。 方法を教えてください。 よろしくお願いいたします。

  • VBA コマンドバーを消した後に残る空白部分

    お世話になります。 ExcelVBAで、コマンドバーの類を全て消去した後に残る、 空白部分ができる原因が解りません。 この部分をダブルクリックすると、エラーになって強制終了に なってしまいます。 完全に消してしまいたいのですが、この状況になってしまう、 原因と対策を教えてください。 内容は、『システム』という名のシートにある『ロック』ボタンを 押すと、コマンドバーを全て消去して、Sheet1に切り替わるといった 流れです。 ↓モジュール側 ------------------------------------------------------------- Dim myCB As CommandBar Public Sub onCmdBarAttr() DoEvents With Application For Each myCB In Application.CommandBars myCB.Enabled = True Next myCB .CommandBars("Standard").Visible = True .CommandBars("Formatting").Visible = True .CommandBars("Visual Basic").Visible = True .CommandBars("Worksheet Menu Bar").Enabled = True .CommandBars("CELL").Enabled = True ' タスクバーに表示させる .ShowWindowsInTaskbar = True ' 数式バーを表示 .DisplayFormulaBar = True ' ステータスバーを表示 .DisplayStatusBar = True End With End Sub Public Sub offCmdBarAttr() Dim myCB As CommandBar On Error Resume Next For Each myCB In Application.CommandBars myCB.Enabled = False Next myCB On Error GoTo 0 With Application .CommandBars("Worksheet Menu Bar").Enabled = False .CommandBars("CELL").Enabled = False ' 数式バーを消去 .DisplayFormulaBar = False ' ステータスバーを消去 .DisplayStatusBar = False ' タスクバーに表示させない .ShowWindowsInTaskbar = False End With End Sub ' シートロック Public Sub protectSheet(ByVal stSheetName As String) Application.ScreenUpdating = False ' 一旦シート保護をかけ直す With Worksheets(stSheetName) .Activate .Unprotect .Protect UserInterfaceOnly:=True ' カーソルの移動範囲を設定する .ScrollArea = "$A$1" ' 左上セルを選択 .Range("H16").Select ' 保護されたセルは選択不可にする .EnableSelection = xlNoRestrictions End With Application.ScreenUpdating = True End Sub ' シートロック解除 Public Sub unprotectSheet(ByVal stSheetName As String) ' 一旦シート保護をかけ直す With Worksheets(stSheetName) .Unprotect ' スクロール範囲を解除する .ScrollArea = "" ' 保護されたセルでも選択可能にする .EnableSelection = xlUnlockedCells End With End Sub Public Sub setBookAttribute(ByVal bFlg As Boolean) With Windows(ThisWorkbook.Name) ' タブを設定 .DisplayWorkbookTabs = bFlg ' スクロールバーを設定 .DisplayHorizontalScrollBar = bFlg .DisplayVerticalScrollBar = bFlg ' グリッドを設定 .DisplayGridlines = bFlg ' 行列数表示を設定 .DisplayHeadings = bFlg End With End Sub ↓シート側 ------------------------------------------------------ Private Sub btnProtect_Click() ' アプリケーション全体の処理 Call Module1.offCmdBarAttr ' シート単位の処理 Call Module1.protectSheet("Sheet1") ' ブック単位の処理 Call setBookAttribute(False) Worksheets("Sheet1").Activate End Sub Private Sub btnUnprotect_Click() Call Module1.onCmdBarAttr Call Module1.unprotectSheet("Sheet1") Call setBookAttribute(True) End Sub 以上、よろしくお願いいたします。

  • VBA コマンドバーを消した後に残る空白部分

    お世話になります。 ExcelVBAで、コマンドバーの類を全て消去した後に残る、 空白部分ができる原因が解りません。 この部分をダブルクリックすると、エラーになって強制終了に なってしまいます。 完全に消してしまいたいのですが、この状況になってしまう、 原因と対策を教えてください。 内容は、『システム』という名のシートにある『ロック』ボタンを 押すと、コマンドバーを全て消去して、Sheet1に切り替わるといった 流れです。 ↓モジュール側 ------------------------------------------------------------- Dim myCB As CommandBar Public Sub onCmdBarAttr() DoEvents With Application For Each myCB In Application.CommandBars myCB.Enabled = True Next myCB .CommandBars("Standard").Visible = True .CommandBars("Formatting").Visible = True .CommandBars("Visual Basic").Visible = True .CommandBars("Worksheet Menu Bar").Enabled = True .CommandBars("CELL").Enabled = True ' タスクバーに表示させる .ShowWindowsInTaskbar = True ' 数式バーを表示 .DisplayFormulaBar = True ' ステータスバーを表示 .DisplayStatusBar = True End With End Sub Public Sub offCmdBarAttr() Dim myCB As CommandBar On Error Resume Next For Each myCB In Application.CommandBars myCB.Enabled = False Next myCB On Error GoTo 0 With Application .CommandBars("Worksheet Menu Bar").Enabled = False .CommandBars("CELL").Enabled = False ' 数式バーを消去 .DisplayFormulaBar = False ' ステータスバーを消去 .DisplayStatusBar = False ' タスクバーに表示させない .ShowWindowsInTaskbar = False End With End Sub ' シートロック Public Sub protectSheet(ByVal stSheetName As String) Application.ScreenUpdating = False ' 一旦シート保護をかけ直す With Worksheets(stSheetName) .Activate .Unprotect .Protect UserInterfaceOnly:=True ' カーソルの移動範囲を設定する .ScrollArea = "$A$1" ' 左上セルを選択 .Range("H16").Select ' 保護されたセルは選択不可にする .EnableSelection = xlNoRestrictions End With Application.ScreenUpdating = True End Sub ' シートロック解除 Public Sub unprotectSheet(ByVal stSheetName As String) ' 一旦シート保護をかけ直す With Worksheets(stSheetName) .Unprotect ' スクロール範囲を解除する .ScrollArea = "" ' 保護されたセルでも選択可能にする .EnableSelection = xlUnlockedCells End With End Sub Public Sub setBookAttribute(ByVal bFlg As Boolean) With Windows(ThisWorkbook.Name) ' タブを設定 .DisplayWorkbookTabs = bFlg ' スクロールバーを設定 .DisplayHorizontalScrollBar = bFlg .DisplayVerticalScrollBar = bFlg ' グリッドを設定 .DisplayGridlines = bFlg ' 行列数表示を設定 .DisplayHeadings = bFlg End With End Sub ↓シート側 ------------------------------------------------------ Private Sub btnProtect_Click() ' アプリケーション全体の処理 Call Module1.offCmdBarAttr ' シート単位の処理 Call Module1.protectSheet("Sheet1") ' ブック単位の処理 Call setBookAttribute(False) Worksheets("Sheet1").Activate End Sub Private Sub btnUnprotect_Click() Call Module1.onCmdBarAttr Call Module1.unprotectSheet("Sheet1") Call setBookAttribute(True) End Sub 以上、よろしくお願いいたします。

  • VBA コマンドバーを消した後に残る空白部分

    お世話になります。 ExcelVBAで、コマンドバーの類を全て消去した後に残る、 空白部分ができる原因が解りません。 この部分をダブルクリックすると、エラーになって強制終了に なってしまいます。 完全に消してしまいたいのですが、この状況になってしまう、 原因と対策を教えてください。 内容は、『システム』という名のシートにある『ロック』ボタンを 押すと、コマンドバーを全て消去して、Sheet1に切り替わるといった 流れです。 ↓モジュール側 ------------------------------------------------------------- Dim myCB As CommandBar Public Sub onCmdBarAttr() DoEvents With Application For Each myCB In Application.CommandBars myCB.Enabled = True Next myCB .CommandBars("Standard").Visible = True .CommandBars("Formatting").Visible = True .CommandBars("Visual Basic").Visible = True .CommandBars("Worksheet Menu Bar").Enabled = True .CommandBars("CELL").Enabled = True ' タスクバーに表示させる .ShowWindowsInTaskbar = True ' 数式バーを表示 .DisplayFormulaBar = True ' ステータスバーを表示 .DisplayStatusBar = True End With End Sub Public Sub offCmdBarAttr() Dim myCB As CommandBar On Error Resume Next For Each myCB In Application.CommandBars myCB.Enabled = False Next myCB On Error GoTo 0 With Application .CommandBars("Worksheet Menu Bar").Enabled = False .CommandBars("CELL").Enabled = False ' 数式バーを消去 .DisplayFormulaBar = False ' ステータスバーを消去 .DisplayStatusBar = False ' タスクバーに表示させない .ShowWindowsInTaskbar = False End With End Sub ' シートロック Public Sub protectSheet(ByVal stSheetName As String) Application.ScreenUpdating = False ' 一旦シート保護をかけ直す With Worksheets(stSheetName) .Activate .Unprotect .Protect UserInterfaceOnly:=True ' カーソルの移動範囲を設定する .ScrollArea = "$A$1" ' 左上セルを選択 .Range("H16").Select ' 保護されたセルは選択不可にする .EnableSelection = xlNoRestrictions End With Application.ScreenUpdating = True End Sub ' シートロック解除 Public Sub unprotectSheet(ByVal stSheetName As String) ' 一旦シート保護をかけ直す With Worksheets(stSheetName) .Unprotect ' スクロール範囲を解除する .ScrollArea = "" ' 保護されたセルでも選択可能にする .EnableSelection = xlUnlockedCells End With End Sub Public Sub setBookAttribute(ByVal bFlg As Boolean) With Windows(ThisWorkbook.Name) ' タブを設定 .DisplayWorkbookTabs = bFlg ' スクロールバーを設定 .DisplayHorizontalScrollBar = bFlg .DisplayVerticalScrollBar = bFlg ' グリッドを設定 .DisplayGridlines = bFlg ' 行列数表示を設定 .DisplayHeadings = bFlg End With End Sub ↓シート側 ------------------------------------------------------ Private Sub btnProtect_Click() ' アプリケーション全体の処理 Call Module1.offCmdBarAttr ' シート単位の処理 Call Module1.protectSheet("Sheet1") ' ブック単位の処理 Call setBookAttribute(False) Worksheets("Sheet1").Activate End Sub Private Sub btnUnprotect_Click() Call Module1.onCmdBarAttr Call Module1.unprotectSheet("Sheet1") Call setBookAttribute(True) End Sub 以上、よろしくお願いいたします。

  • VBA コマンドバーを消した後に残る空白部分

    お世話になります。 ExcelVBAで、コマンドバーの類を全て消去した後に残る、 空白部分ができる原因が解りません。 この部分をダブルクリックすると、エラーになって強制終了に なってしまいます。 完全に消してしまいたいのですが、この状況になってしまう、 原因と対策を教えてください。 内容は、『システム』という名のシートにある『ロック』ボタンを 押すと、コマンドバーを全て消去して、Sheet1に切り替わるといった 流れです。 ↓モジュール側 ------------------------------------------------------------- Dim myCB As CommandBar Public Sub onCmdBarAttr() DoEvents With Application For Each myCB In Application.CommandBars myCB.Enabled = True Next myCB .CommandBars("Standard").Visible = True .CommandBars("Formatting").Visible = True .CommandBars("Visual Basic").Visible = True .CommandBars("Worksheet Menu Bar").Enabled = True .CommandBars("CELL").Enabled = True ' タスクバーに表示させる .ShowWindowsInTaskbar = True ' 数式バーを表示 .DisplayFormulaBar = True ' ステータスバーを表示 .DisplayStatusBar = True End With End Sub Public Sub offCmdBarAttr() Dim myCB As CommandBar On Error Resume Next For Each myCB In Application.CommandBars myCB.Enabled = False Next myCB On Error GoTo 0 With Application .CommandBars("Worksheet Menu Bar").Enabled = False .CommandBars("CELL").Enabled = False ' 数式バーを消去 .DisplayFormulaBar = False ' ステータスバーを消去 .DisplayStatusBar = False ' タスクバーに表示させない .ShowWindowsInTaskbar = False End With End Sub ' シートロック Public Sub protectSheet(ByVal stSheetName As String) Application.ScreenUpdating = False ' 一旦シート保護をかけ直す With Worksheets(stSheetName) .Activate .Unprotect .Protect UserInterfaceOnly:=True ' カーソルの移動範囲を設定する .ScrollArea = "$A$1" ' 左上セルを選択 .Range("H16").Select ' 保護されたセルは選択不可にする .EnableSelection = xlNoRestrictions End With Application.ScreenUpdating = True End Sub ' シートロック解除 Public Sub unprotectSheet(ByVal stSheetName As String) ' 一旦シート保護をかけ直す With Worksheets(stSheetName) .Unprotect ' スクロール範囲を解除する .ScrollArea = "" ' 保護されたセルでも選択可能にする .EnableSelection = xlUnlockedCells End With End Sub Public Sub setBookAttribute(ByVal bFlg As Boolean) With Windows(ThisWorkbook.Name) ' タブを設定 .DisplayWorkbookTabs = bFlg ' スクロールバーを設定 .DisplayHorizontalScrollBar = bFlg .DisplayVerticalScrollBar = bFlg ' グリッドを設定 .DisplayGridlines = bFlg ' 行列数表示を設定 .DisplayHeadings = bFlg End With End Sub ↓シート側 ------------------------------------------------------ Private Sub btnProtect_Click() ' アプリケーション全体の処理 Call Module1.offCmdBarAttr ' シート単位の処理 Call Module1.protectSheet("Sheet1") ' ブック単位の処理 Call setBookAttribute(False) Worksheets("Sheet1").Activate End Sub Private Sub btnUnprotect_Click() Call Module1.onCmdBarAttr Call Module1.unprotectSheet("Sheet1") Call setBookAttribute(True) End Sub 以上、よろしくお願いいたします。

  • エクセルVBAでパスの¥マークについて

    このマクロを記述したBOOKと同じフォルダー内にある、シート001.xls を開くマクロです。 同一フォルダーにあるのですから、このような記述になると思います。 Sub kakunin1() Workbooks.Open (ThisWorkbook.Path & "\" & "シート001.xls") End Sub しかし、以下の3つはすべてシート001.xls を開くことができました。 Sub kakunin2() Workbooks.Open (ThisWorkbook.Path & "\" & "\" & "シート001.xls") End Sub Sub kakunin3() Workbooks.Open (ThisWorkbook.Path & "\" & "\" & "\" & "シート001.xls") End Sub Sub kakunin4() Workbooks.Open (ThisWorkbook.Path & "\" & "\" & "\" & "\" & "\" & "\" & "シート001.xls") End Sub パスの¥マークは階層をあらわすのだと思っていましたがいくつ重ねてもなぜ開くのでしょうか?非常に初歩的な質問だと思いますが、ご教示いただければ幸いです。

  • VBAでエラーメッセージが出ないようにしたい

    book1にbook2のセルをコピーして貼り付け、book2を閉じようとしたところ、シートにリンクが張られているのか以下のようなメッセージボックスが出てきます ----ここから----------------- 移動またはコピーしようとしている数式またはシートには、移動またはコピー先のワークシートに既にある名前’xxx’が含まれています。この名前を使用しますか? コピーまたは移動先のシートに定義されている名前を使用する場合は「はい」をクリックします。 数式またはワークシートで参照する範囲の名前を変更する場合は、「いいえ」をクリックし、「名前の重複」ダイアログボックスに新しい名前を入力します。 ---------ここまで------------------ 取り敢えず「はい」をクリックして閉じているのですが、複数回このメッセージが繰り返し出てきて面倒なので、VBAでこのメッセージを出さないようにしたいのですが、どのようにすればよいのでしょうか?

  • Excel2003マクロ:隣以降のシートにある文字を検索して書式変更

    Excelのマクロについてです。プログラミングなんていう大層なカテゴリではないのですが・・・ 複数枚あるシート(枚数はランダム)で、左端のSheet1に検索キーワードが入っています。 右側のシート群には上記キーワードがちりばめられており、これらを視覚的に目立たせるマクロを考えています。 つまりSheet1のある範囲(具体的にはE6以下、データが存在する位置までの範囲)に並んだ文字を左のシート群で検索し、引っかかったセルに色をつけたいのですが、下記のマクロでは開始位置(E6)のセルしか見てくれません。 また、検索結果として赤くしたいのはSheet2以降の対象セルなのですが、どうしてもSheet1のセルも赤くなってしまいます。 つまり下記VBAを実行すると、Sheet1.E6の「りんご」の文字を使ってすべてのシートを検索し、Sheet1を含むすべてのシートで「りんご」の文字が入ったセルが赤くなります。 ループを仕込んでいるにもかかわらず「みかん」の文字は赤くなりません。 どこでポカをやっているのでしょうか? シート関数でしたらそれなりに使えるのですがマクロはなかなか理解しづらく・・・ なにとぞヒントをいただけませんか? <状況> 最初のシートはE6より縦に  E6 りんご  E7 みかん  ・   ・  ・ と並び、右のシート(数枚)に、ランダムにその文字が入力されています。書式はバラバラです。 <目標> 最初のシートのある範囲(E6以下)にある文字がSheet2以降で見つかった場合、そのセルを赤く、文字を白くしたい。 以下は自分で作ってみたへぼへぼマクロです: Sub セルに色付け() Dim SearchCount As Integer Dim SearchLineID Dim WS As Worksheet Set WS = ActiveSheet  '後で現在のSheetに戻ってくるため SearchCount = Range("E6").CurrentRegion.Rows.Count  'E6から下に読んでいこうとしています For i = 1 To SearchCount SearchLineID = Cells(i + 5, 5).Value  'E6から始めるための補正です For n = 2 To Sheets.Count  'シートの数を取得し、2枚目から検索を行う意図です With Application.ReplaceFormat.Font .Subscript = False .ColorIndex = 2 End With Application.ReplaceFormat.Interior.ColorIndex = 3 Sheets(n).Select Range("A6:AF512").Select    'とりあえずこの範囲を検索 Selection.Replace What:=SearchLineID, Replacement:=SearchLineID, LookAt:= _ xlWhole, SearchOrder:=xlByRows, ReplaceFormat:=True Next n Next i WS.Activate End Sub

  • VBAで対象となる月の数を出す方法を教えて下さい。

    2009.12.21~2010.1.20と入力された場合、結果2 2009.4.1~2009.4.30と入力された場合、結果1 のように対象となる(足かけ月数)月数を出す方法を知りたいのです。 下記コードのように変数A、BにVariant型で入力してもらい(Variant型でないと困る理由があるので) それをDate型に変換したり、またVariant型に戻したり(必要があり)しながら、myOpenFileNamesにMypath & MyFileを順次追加すべく進めたいのですが、Mcntを出せずにいます。 Month(B)-Month(A)では12月と1月で不具合が出るし‥ 期間が3か月以上の場合もあります。 なにかシンプルなのがありそうなので半日調べたのですが解りませんでした。皆様、お助け下さいませ。 ここまで省略 '●請求対象期間の入力 A = Application.InputBox("請求対象期間(開始日)を入力してください。", "開始日", "2009.12.21", Type:=2) If A = False Then MsgBox " Cancel ボタンが押されました" Exit Sub End If On Error GoTo OWARI3 A = CDate(Replace(A, ".", "/")) On Error GoTo 0 B = Application.InputBox("請求対象期間(締め日)を入力してください。", "締め日", Replace(Format(DateAdd("d", -1, DateAdd("m", 1, A)), "yyyy/mm/dd"), "/", "."), Type:=2) If B = False Then GoTo OWARI End If On Error GoTo OWARI3 B = CDate(Replace(B, ".", "/")) On Error GoTo 0 If A > B Then MsgBox A & "~" & B & " は請求日と締め日が逆転してます。", vbOKOnly + vbCritical, "最初からやり直して下さい。" GoTo OWARI End If D = B - A msgRec = MsgBox(A & "~" & B & "分でよろしいですか?", vbOKCancel + vbQuestion, "対象は" & D + 1 & "日分です") If msgRec = vbCancel Then MsgBox " Cancel ボタンが押されました" Exit Sub End If Mcnt = ●○○○●        ←ここを出す方法を知りたいのです。******************************** ReDim BN(1 To Mcnt) For i = 1 To Mcnt BN(i) = Replace(Format(DateAdd("m", i - 1, A), "yyyy/mm"), "/", ".") Mypath = ThisWorkbook.Path & "\明細書一覧" & BN(i) & "月" MyFile = "\明細書一覧" & BN(i) & "月.xls" myOpenFileNames.Add (Mypath & MyFile) Next i 以下略

  • EXCEL(2003)VBAで配列貼り付け

    EXCEL2003を使用してます VBAでCSVファイルを読み込み セルに書き込む動きを作成しました 当初、FOR~NEXTでまわしてセルに一つ一つ書き込んで ましたが、速度向上の為 配列に格納して貼り付けをしています 例: Dim aryStrings() As String ReDim aryStrings(16) 'デリミタ[,]でデータ分割 aryStrings = Split(rec, ",") .Range(Cells(1, 3), Cells(1, 18)) = aryStrings() EXCEL上では数値として扱いたいのですが CSV読み込み時に文字列として扱うため配列は String型になっております ※セルの書式設定は数値型を設定済 配列貼り付け後確認するともちろんですが文字列として張り付いてます (該当セルで編集+ENTERでEXCELが数値に変換してくれますが) 下記の3つの方法で可能な事はありますか? (1)CSV読み込み時に数値に変換して配列に格納 (2)配列を一気に数値型に変換 (3)文字列配列を数値型に変換しながらEXCELに一気に  配列貼り付け ご存知の方、いらっしゃいましたらアドバイスお願い致します

  • VBAで対象となる月の数を出す方法を教えて下さい。

    2009.12.21~2010.1.20と入力された場合、結果2 2009.4.1~2009.4.30と入力された場合、結果1 のように対象となる(足かけ月数)月数を出す方法を知りたいのです。 下記コードのように変数A、BにVariant型で入力してもらい(Variant型でないと困る理由があるので) それをDate型に変換したり、またVariant型に戻したり(必要があり)しながら、myOpenFileNamesにMypath & MyFileを順次追加すべく進めたいのですが、Mcntを出せずにいます。 Month(B)-Month(A)では12月と1月で不具合が出るし‥ 期間が3か月以上の場合もあります。 なにかシンプルなのがありそうなので半日調べたのですが解りませんでした。皆様、お助け下さいませ。 ここまで省略 '●請求対象期間の入力 A = Application.InputBox("請求対象期間(開始日)を入力してください。", "開始日", "2009.12.21", Type:=2) If A = False Then MsgBox " Cancel ボタンが押されました" Exit Sub End If On Error GoTo OWARI3 A = CDate(Replace(A, ".", "/")) On Error GoTo 0 B = Application.InputBox("請求対象期間(締め日)を入力してください。", "締め日", Replace(Format(DateAdd("d", -1, DateAdd("m", 1, A)), "yyyy/mm/dd"), "/", "."), Type:=2) If B = False Then GoTo OWARI End If On Error GoTo OWARI3 B = CDate(Replace(B, ".", "/")) On Error GoTo 0 If A > B Then MsgBox A & "~" & B & " は請求日と締め日が逆転してます。", vbOKOnly + vbCritical, "最初からやり直して下さい。" GoTo OWARI End If D = B - A msgRec = MsgBox(A & "~" & B & "分でよろしいですか?", vbOKCancel + vbQuestion, "対象は" & D + 1 & "日分です") If msgRec = vbCancel Then MsgBox " Cancel ボタンが押されました" Exit Sub End If Mcnt = ●○○○●        ←ここを出す方法を知りたいのです。******************************** ReDim BN(1 To Mcnt) For i = 1 To Mcnt BN(i) = Replace(Format(DateAdd("m", i - 1, A), "yyyy/mm"), "/", ".") Mypath = ThisWorkbook.Path & "\明細書一覧" & BN(i) & "月" MyFile = "\明細書一覧" & BN(i) & "月.xls" myOpenFileNames.Add (Mypath & MyFile) Next i 以下略

  • VBAで範囲を有するセルの記載位置を入れ替える

    お世話になります。 あるデータを扱うため、sheet_1に以下のような表を作成し管理を行っております。 sheetは複数存在するので、敢えてsheet_1とします。 (sheet_1)      B列ーC列ーD列ーF列ーG列ーH列ーI列ーJ列ーK列ーL列・・・  3行  A   A   A   A   B   B   B   B   C   C  4行  A   A   A   A   B   B   B   B   C   C  5行  A   A   A   A   B   B   B   B   C   C  6行  A   A   A   A   B   B   B   B   C   C  7行  F   F   F   F   G   G   G   G   H   H  8行  F   F   F   F   G   G   G   G   H   H  9行  F   F   F   F   G   G   G   G   H   H 10行  F   F   F   F   G   G   G   G   H   H 11行  K   K   K   K   L    L   L   L   M   M 12行 以下、上記のように続く 4列毎×4行毎の16セル分の範囲を1情報として扱っているのですが、VBAを利用して記入された横方向の情報を下部行(例えば150行目)で縦に置き換える方法をご教授いただきたく投稿致しました。 変換元の対象範囲はB3:BM126です。 (sheet_1)       B列ーC列ーD列ーF列ーG列ーH列ーI列ーJ列ーK列ーL列・・・ 150行  A   A   A   A   F   F   F   F   K   K 151行  A   A   A   A   F   F   F   F   K   K 152行  A   A   A   A   F   F   F   F   K   K 153行  A   A   A   A   F   F   F   F   K   K 154行  B   B   B   B   G   G   G   G   L   L 155行  B   B   B   B   G   G   G   G   L   L 156行  B   B   B   B   G   G   G   G   L   L 157行  B   B   B   B   G   G   G   G   L   L 158行  C   C   C   C   H   H   H   H   M   M 159行 以下、上記のように続く 同一sheet内ではなく、新たにsheetを作成して同じ結果を求める方法でも構いませんので、恐れ入りますがご教授宜しくお願い致します。

  • Dictionaryを使い4つの条件の一致で2つの集計列を集計したいのです

    条件4項目 日付&単位&単価&区分(A列、C列、D列、F列)の一致するもののB列及びE列を集計して別シートに書き出したいのです。  sheet1 A   B   C   D   E   F 日付  数   単位  単価  計   区分 3/12  2    人  10000 20000  通常 3/12  1    人  10000 10000  通常 3/12  1    時間  2000 10000  残業 3/14  4    時間  2000  8000  残業 3/15  4    人  10000 40000  通常 このような表を sheet2 A   B   C   D   E   F 日付 数 単位 単価 計 区分 3/12  3    人  10000 30000  通常 3/12  1    時間  2000 10000  残業 3/14  4    時間  2000  8000  残業 3/15  4    人  10000 40000  通常 のようにまとめたいのです。 Dictionaryを用い、A列、C列、D列、F列を一旦結合しkeyとし、同じものが登録されていたら、itemとしてB列及びE列の値を加算させて、登録件数分を書き出しという流れでやりたいのですが、出来ません。 助けて下さい。お願いします。

  • Dictionaryを使い4つの条件の一致で2つの集計列を集計したいのです

    条件4項目 日付&単位&単価&区分(A列、C列、D列、F列)の一致するもののB列及びE列を集計して別シートに書き出したいのです。  sheet1 A   B   C   D   E   F 日付  数   単位  単価  計   区分 3/12  2    人  10000 20000  通常 3/12  1    人  10000 10000  通常 3/12  1    時間  2000 10000  残業 3/14  4    時間  2000  8000  残業 3/15  4    人  10000 40000  通常 このような表を sheet2 A   B   C   D   E   F 日付 数 単位 単価 計 区分 3/12  3    人  10000 30000  通常 3/12  1    時間  2000 10000  残業 3/14  4    時間  2000  8000  残業 3/15  4    人  10000 40000  通常 のようにまとめたいのです。 Dictionaryを用い、A列、C列、D列、F列を一旦結合しkeyとし、同じものが登録されていたら、itemとしてB列及びE列の値を加算させて、登録件数分を書き出しという流れでやりたいのですが、出来ません。 助けて下さい。お願いします。

  • オートフィルタの青い三角が見づらい・・

    すみません。質問させてください。 オートフィルタで抽出すると、青い三角になりますが、 それが見づらいので、抽出している行がすぐわかるようにしたいです。 (ファイルを縮小表示しているもので・・・) オートフィルタをかけると、かけている(三角がある)セルだけ色が変わる・・ など、いい案があれば教えて下さい! 宜しくお願い致します。

  • エクセル2007 置換の機能について

    エクセル初心者です。 教えてください。 そもそも置換(Ctrl+H)の機能なんですが、シート上で範囲指定すれば、その範囲指定された所のみの置換になるのでしょうか? それとも、シート上、置換の検索値に該当するものは、すべて置換になってしまうのでしょうか? 初歩的な質問で申し訳ございませんが、よろしくお願いいたします。 過去に置換を範囲指定してすべて置換をしたところ、範囲指定していない所まで置換してしまった苦い経験があったとおもうので・・・。 よろしくお願いいたします。

  • 【エクセルVBA】ドロップダウンリストに項目追加→他のファイルにも自動的に項目追加がしたい

    やりたいことが難しそうなので、できないかもしれませんが、 もしかしたらと思い投稿しました。 まず、エクセルファイル「book1.xls」「book2.xls」「マスター.xls」 を用意します。 どのファイルにもA1~A5に東京、神奈川、千葉、埼玉、茨城と 入力したとします。このA1~A5に都道府県という名前を付けます。 B1にはドロップダウンリストをつくり、都道府県と名づけたセルの内容 が選択できるようにします。    A    B 1 東京 ドロップダウンリスト 2 神奈川 3 千葉 4 埼玉 5 茨城 ここで「マスター.xls」のA6に栃木と入力し、A1~A6の名前を都道府県 に変更したとします。この時B1のリストの項目は5から6に増えています。 私がやりたいのは、上記のように「マスター.xls」を変更したとき、 「book1.xls」「book2.xls」にも自動的に同様の変更がおこるように したいのです。 ファイルが3つだったら1つずつ直せばよいですが、実際に私がやろう としているのは50個くらいあるので、1つずつ直すのは手間がかかり ます。そこで、1つのファイルのドロップダウンリストの項目を変更 すると他のファイルも同様に変更が加わるような仕組みをつくりたい のです。 どのような方法でもかまいませんが、マクロを使うなら、 入力すべきコードを正確に教えてください。 よろしくお願いします。

  • ExcelVBA With~End With構文でまとめられない??

    すみませんがご教示いただければ幸いです。 セル範囲を選択させ、情報を得てから作業するのですが、コードにたくさんSelection(すべて同じ選択範囲)が出てくるのでWith~End Withでまとめようと思いました。 ところが、まとめてもSelectionという表記を省略できたのはほんのわずかです。 ご覧の通り、TypeName(Selection) をはじめIntersect(Selection(1), 等々省略できないのがほとんどです。 Set myRng=Selection でやったとしても、SelectionがmyRngに変わるだけでぜんぜん省略にならないですよね? こんな場合は何か別の省略した書き方があるのでしょうか? Sub test() With Selection If TypeName(Selection) <> "Range" Then 'セル以外をセレクトしてたら MsgBox "セル範囲を選択してください。", vbCritical, " Σ( ̄ロ ̄lll)" Exit Sub End If If Intersect(Selection(1), Range("D4:AY65")) Is Nothing _ Or Intersect(Selection(.Count), Range("D4:AY65")) Is Nothing Then '指定のセル範囲をはみ出てたら ans = MsgBox("はみ出してますがいいんですか?", vbYesNo + vbQuestion, " ( ̄□ ̄; ? ") If ans = vbNo Then Exit Sub End If End If For Each Ln In ActiveSheet.Lines '配置された各直線につき If Not Intersect(Range(Ln.TopLeftCell, Ln.BottomRightCell.Offset(0, -1)), Selection) Is Nothing Then '選択範囲とかぶってたら MsgBox "重複してます!", vbCritical, " ( ̄□ ̄;)!! " Exit Sub End If Next End With '以下、無関係なので略します。 End Sub