全413件中1~20件表示
  • 赤文字の入ったセル数をカウントしたい。

     社員勤務のシフト表カレンダーを、EXCEL2013で作ろうとしています(BOX型)。  作ったカレンダーは、給与が20日締めですから、例えば、9月のカレンダーは、8月21日始まり、9月20日終了という形式です。 祝祭日と日曜日の日にちは、赤文字で表示してあります。  次に、月間総労働時間を算出するために、該当のセル範囲(G20:S20)の中から、労働時間から除外すべき日数=【『赤文字で表示した祝祭日と日曜日』が入った(セルの数)】を、カウントし、例えば、セルE26に、=○○(G20:S20,3)の形式を用いて表示させたいと思います。VBAを使いたいのですがうまく作れません。ご教授下さい。 《整理》 1.セル範囲(G20:S20)中の月間総労働時間を算出したい。 2.労働時間から除外すべき祝祭日と日曜日は、赤文字で表記させている。 3.この赤文字の入ったセル数をカウントしたい。 4.表示形式は、=○○(G20:S20,3) 5.VBAを使いたい。 《追記》 祝祭日と日曜日を赤文字に表記させた作業工程は、次の通りです。 (1)日曜日は、予めFontを赤に設定、(2)祝日は、「条件付き書式」を使いFontを赤に設定、(3)8月21日より、9月20日までの期間外の日にちは、Fontを白に設定し、見えないようにしました。 < 使用 Excel:Excel2013、使用 OS:Windows10 >

  • 最終行/処理対象のデータまでを表すVBA

    こんばんは、データの最終行/処理する対象のセルまで処理する場合のVBAの記述について質問させてください!VBAの最終行/処理する対象のセルまで選択するために使用する記述方法が何種類かありますが、そのうち、書籍やネットで検索しても出てこない記述方法について今一つ理解ができていません(T_T) 本屋で売っている書籍やネットで検索すると出てくる記述方法 Range~.End(xlUp).Row Range~.CurrentRegion Range~.SpecialCells(xlLastCell) Range~.Cells(Rows.Count, 1).End(xlUp).Row 上記のようなVBAは書籍やネットで検索すると説明や違いについても出てくるので、説明を読めば理解ができるのですが、 Sheets("テスト").Range("A1:C" & Sheets("テスト").Cells _(1).CurrentRegion.Rows.Count) Range("A1").CurrentRegion.Cells(Range _("A1").CurrentRegion.Cells.Count).Row 上記のようなVBAについては検索しても説明など出てこないうえに、 なぜ上記のような記述になるのかあまり理解できていません(>_<) 書籍やネットで検索すると出てくる「Range~.CurrentRegion」などの記述方法から何となく、CurrentRegionやCells.Countを使わないといけないというのは理解できますが、なぜ「~CurrentRegion.Rows.Count)」はRowsがカッコの中に入っていて、「~CurrentRegion.Cells.Count).Row」はカッコの外に出ているのか??といった細かいことが分からずにいます。。。 半ば丸暗記のようにして使ってしまっているのですが、もし上記のようなVBAについてわかるかたがいらっしゃれば、ご教授いただけるととても嬉しいです! また、上記以外にもまだ検索しても出てこないようなVBAがあるのでしょうか?? 頭が混乱しそうです!(゜Д゜;)

  • 最終行/処理対象のデータまでを表すVBA

    こんばんは、データの最終行/処理する対象のセルまで処理する場合のVBAの記述について質問させてください!VBAの最終行/処理する対象のセルまで選択するために使用する記述方法が何種類かありますが、そのうち、書籍やネットで検索しても出てこない記述方法について今一つ理解ができていません(T_T) 本屋で売っている書籍やネットで検索すると出てくる記述方法 Range~.End(xlUp).Row Range~.CurrentRegion Range~.SpecialCells(xlLastCell) Range~.Cells(Rows.Count, 1).End(xlUp).Row 上記のようなVBAは書籍やネットで検索すると説明や違いについても出てくるので、説明を読めば理解ができるのですが、 Sheets("テスト").Range("A1:C" & Sheets("テスト").Cells _(1).CurrentRegion.Rows.Count) Range("A1").CurrentRegion.Cells(Range _("A1").CurrentRegion.Cells.Count).Row 上記のようなVBAについては検索しても説明など出てこないうえに、 なぜ上記のような記述になるのかあまり理解できていません(>_<) 書籍やネットで検索すると出てくる「Range~.CurrentRegion」などの記述方法から何となく、CurrentRegionやCells.Countを使わないといけないというのは理解できますが、なぜ「~CurrentRegion.Rows.Count)」はRowsがカッコの中に入っていて、「~CurrentRegion.Cells.Count).Row」はカッコの外に出ているのか??といった細かいことが分からずにいます。。。 半ば丸暗記のようにして使ってしまっているのですが、もし上記のようなVBAについてわかるかたがいらっしゃれば、ご教授いただけるととても嬉しいです! また、上記以外にもまだ検索しても出てこないようなVBAがあるのでしょうか?? 頭が混乱しそうです!(゜Д゜;)

  • 赤文字の入ったセル数をカウントしたい。

     社員勤務のシフト表カレンダーを、EXCEL2013で作ろうとしています(BOX型)。  作ったカレンダーは、給与が20日締めですから、例えば、9月のカレンダーは、8月21日始まり、9月20日終了という形式です。 祝祭日と日曜日の日にちは、赤文字で表示してあります。  次に、月間総労働時間を算出するために、該当のセル範囲(G20:S20)の中から、労働時間から除外すべき日数=【『赤文字で表示した祝祭日と日曜日』が入った(セルの数)】を、カウントし、例えば、セルE26に、=○○(G20:S20,3)の形式を用いて表示させたいと思います。VBAを使いたいのですがうまく作れません。ご教授下さい。 《整理》 1.セル範囲(G20:S20)中の月間総労働時間を算出したい。 2.労働時間から除外すべき祝祭日と日曜日は、赤文字で表記させている。 3.この赤文字の入ったセル数をカウントしたい。 4.表示形式は、=○○(G20:S20,3) 5.VBAを使いたい。 《追記》 祝祭日と日曜日を赤文字に表記させた作業工程は、次の通りです。 (1)日曜日は、予めFontを赤に設定、(2)祝日は、「条件付き書式」を使いFontを赤に設定、(3)8月21日より、9月20日までの期間外の日にちは、Fontを白に設定し、見えないようにしました。 < 使用 Excel:Excel2013、使用 OS:Windows10 >

  • エクセル検索について

    以前教えていただいた方法で検索窓を作成しました。 質問No.9377089 シートにテキストボックス1個、コマンドボタン2個を配置し、下記を記載しました。 Option Explicit Private Sub CommandButton1_Click() Dim Target As Range, rCrit As Range, sCrit As String Dim nR As Long, cnC As Long, i As Long   Application.ScreenUpdating = False   On Error Resume Next   ActiveSheet.ShowAllData   On Error GoTo 0   sCrit = "=""*" & TextBox1.Value & "*"""   Set Target = Cells.CurrentRegion   nR = Target.Rows.Count + 2   cnC = Target.Columns.Count   Set rCrit = Cells(nR, 1).Resize(cnC + 1, cnC)   For i = 1 To cnC     rCrit(i) = Cells(i)     rCrit(i + 1, i) = sCrit   Next i   Target.AdvancedFilter _     Action:=xlFilterInPlace, _     CriteriaRange:=rCrit, _     Unique:=False   rCrit.ClearContents   Application.ScreenUpdating = True End Sub Private Sub CommandButton2_Click()   On Error Resume Next   ActiveSheet.ShowAllData   On Error GoTo 0 End Sub 希望としてはシート内の文字はすべて検索対照にしたい。 検索後にテキストが消えないようにしたいです。 どうぞよろしくお願い致します。

  • VBSで特定のエラーが出た場合のみスルーしたい

    VBSについて質問です。 VBS実行中、事前に予測できる特定のエラー番号が出た場合にのみ エラーメッセージを無視させることはできないでしょうか http://bayashita.com/p/entry/show/76 ↑こちらのページ等を拝見させていただき、 事前にエラーが出ることが分かる個所の前に On Error Resume Next を挿入して、以降全てのエラーを無視させる。 特定のエラー番号が出た場合に Select Case Err.Number Case 53   WScript.Echo "stop" End Select と番号に該当する指示をさせる。 On Error Goto 0 でエラーを正しく表示させるように戻す。 までは分かりました。 複数のVBSを同時に実行する可能性がある環境な為、 エラーメッセージ全てを無視させてしまうと運用に問題があります。 個々のVBSそれぞれで特定のエラーコードのみ無視(といいますか、他アクションへ分岐?)させる方法を教えていただきたいです。。。 具体的には、 ファイルを開くアクションでファイルが無かった場合に パスが存在しませんという旨のエラーメッセージが出る場合はその時点でVBSの 実行自体を終了したいです。 代替案あれば教えていただけると幸いです。 回答よろしくお願いします!

  • 別シートからの氏名の日付を入力

    シートAの表のような日付割り氏名欄があり個人がいつ出勤したか実績の月日をシートBの氏名ごとの出勤日を入力し回数を計上したいのですがどなたかExcel関数もしくはVBA関数の解る方よろしくお願いします。

  • 別シートからの氏名の日付を入力

    シートAの表のような日付割り氏名欄があり個人がいつ出勤したか実績の月日をシートBの氏名ごとの出勤日を入力し回数を計上したいのですがどなたかExcel関数もしくはVBA関数の解る方よろしくお願いします。

  • エクセルマクロで検索ボックスを作成する

    エクセル2010のマクロで検索ボックスを作成したいと考えています。 質問No.4072490を参照して作成しました。 ////////////////////////////////////////////////////////// 質問 エクセルのシートにテキストボックスとコマンドボタンを配置してシート上のデータを検索することは可能でしょうか?今現在はB列に、複数の文字データが入力してあるので、オートフィルタのオプションから「を含む」で検索してます。 イメージとしては、オートフィルタのオプションから「を含む」を選んでから検索しなくても予めシートに用意してあるテキストボックスに検索したい文字を入れてボタンを押すと、オートフィルタで検索したときと同じような結果が得られるようにしたいと思ってます。 例)  A    B    C     -------------- 1     血液型      2      A 3      B 4      O 5      AB 上のような表があったとして、テキストボックスにAと入力してボタンを押すとB2とB5が表示されるようにしたと思ってます。いい方法があればご教示願います。 回答 シートにテキストボックス1個、コマンドボタン2個を配置します。 これは出来ますね。 コマンドボタン1個目は検索ボタン、2個目は解除ボタンです。 ツール→マクロ→Visual Basic Editorを選択して シートに以下のコードを貼り付ける。 ------------------ ここから下 ---------------------- Option Explicit Private Sub CommandButton1_Click() Rows("1:1").Select Selection.AutoFilter Selection.AutoFilter Field:=2, Criteria1:="=*" & TextBox1.Value & "*", Operator:=xlAnd End Sub Private Sub CommandButton2_Click() Selection.AutoFilter End Sub ---------------- ここまで ------------------ エクセル2000です。 機能は「を含む」です。つまり文字列のどこにでもテキストボックスに入力した文字が含む行を表示します。 ////////////////////////////////////////////////////////// 上記を参照して検索ボックスを作成したところ、一回目の検索とフィルタ戻しは問題なくできましたが、2回目から検索ができません。 どこか変更した方が良いでしょうか。 追加でもう一つ質問です。 検索範囲がB列に限定されてしまいます。 シート状のすべてで検索することはできるでしょうか。

    • ベストアンサー
    • noname#228337
    • Visual Basic
    • 回答数1
  • VBAの配列について

    初めまして、VBAの配列の入力方法について質問させてください。 大量のデータの処理を高速化するため、配列を使用して以下のVBAを入力しました。 インターネットで調べ、見よう見まねで入力してみたものです…(T_T) 内容は、シート「資料」のC列とシート「Sheet1」のG列の文字列が同じ かつ、シート「資料」のL列から最終列(そのときによって変化します) とシート「Sheet1」のE列の文字列が同じ場合、 シート「資料」のA列~D列及びL列から最終列で文字列の一致したセルを 着色するというものです。 変数「アイス」と「チョコ」にそれぞれシート「資料」のデータと シート「Sheet1」のデータを格納したつもりなのですが、 実行したところ「配列がありません。」というエラーメッセージが 表示されました。 どうやらデータを配列として格納できていないときに表示される エラーメッセージのようなのですが、変数の型を変更してみたり、 配列をアイス(2)にしてみたりと、色々方法を変えて試してみたものの、 処理は成功しませんでした(T_T) 一体何が原因で処理が成功しないのか、どなたかご教授いただけると とても嬉しいです…!よろしくお願いいたします。 ちなみに、配列を使用しない場合の処理は、時間が15分ほどと かなりかかりますが、成功しています。 Application.ScreenUpdating = True Dim アイス, チョコ As Long Dim i As Integer, j As Integer, k As Integer アイス = Sheets("資料").Cells(Rows.Count, 1).End(xlUp).Row チョコ = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row For i = 3 To Sheets("資料").Cells(Rows.Count, 1).End(xlUp).Row For j = 12 To Sheets("資料").Cells(i, 12).End(xlToRight).Column For k = 2 To Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row If アイス(i, 3).Value = チョコ(k, 7).Value And アイス(i, j).Value = チョコ(k, 5).Value Then Sheets("資料").Range("A" & i & ":D" & i).Interior.ColorIndex = 22 アイス(i, j).Interior.ColorIndex = 22 End If Next k Next j Next i

  • VBAの配列について

    初めまして、VBAの配列の入力方法について質問させてください。 大量のデータの処理を高速化するため、配列を使用して以下のVBAを入力しました。 インターネットで調べ、見よう見まねで入力してみたものです…(T_T) 内容は、シート「資料」のC列とシート「Sheet1」のG列の文字列が同じ かつ、シート「資料」のL列から最終列(そのときによって変化します) とシート「Sheet1」のE列の文字列が同じ場合、 シート「資料」のA列~D列及びL列から最終列で文字列の一致したセルを 着色するというものです。 変数「アイス」と「チョコ」にそれぞれシート「資料」のデータと シート「Sheet1」のデータを格納したつもりなのですが、 実行したところ「配列がありません。」というエラーメッセージが 表示されました。 どうやらデータを配列として格納できていないときに表示される エラーメッセージのようなのですが、変数の型を変更してみたり、 配列をアイス(2)にしてみたりと、色々方法を変えて試してみたものの、 処理は成功しませんでした(T_T) 一体何が原因で処理が成功しないのか、どなたかご教授いただけると とても嬉しいです…!よろしくお願いいたします。 ちなみに、配列を使用しない場合の処理は、時間が15分ほどと かなりかかりますが、成功しています。 Application.ScreenUpdating = True Dim アイス, チョコ As Long Dim i As Integer, j As Integer, k As Integer アイス = Sheets("資料").Cells(Rows.Count, 1).End(xlUp).Row チョコ = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row For i = 3 To Sheets("資料").Cells(Rows.Count, 1).End(xlUp).Row For j = 12 To Sheets("資料").Cells(i, 12).End(xlToRight).Column For k = 2 To Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row If アイス(i, 3).Value = チョコ(k, 7).Value And アイス(i, j).Value = チョコ(k, 5).Value Then Sheets("資料").Range("A" & i & ":D" & i).Interior.ColorIndex = 22 アイス(i, j).Interior.ColorIndex = 22 End If Next k Next j Next i

  • VBA Selectの省略

    こんばんは、VBAのSelectメソッドの省略について質問させてください。 VBAにおいてSelectを使用すると処理が遅くなると聞いたことがあるので、なるべくSelectを避けるべく以下のVBAを記述しました。 内容は、シート「りんご」のA列~AN列に入っているデータを見出し項目を含めてコピー、そしてSheet1にペーストするというものです。(行数は毎回変化します。) ところが、以下を実行したところ、コピー&ペーストされたのは1行目の見出し項目のみでした。一方、「Range("A1:AN" ~」の前に「Sheets("りんご").Select」を入れたところ、全てのデータをコピー&ペーストすることができました。 この場合は、Selectを使用せずデータをコピー&ペーストすることは不可能なのでしょうか…?!どなたかご回答いただけると嬉しいです、よろしくお願いいたします。  '対象データのコピー&ペースト Sheets("りんご").Range("A1:AN" & Cells(1).CurrentRegion.Rows.Count).Copy Sheets("Sheet1").Paste

  • VBA Selectの省略

    こんばんは、VBAのSelectメソッドの省略について質問させてください。 VBAにおいてSelectを使用すると処理が遅くなると聞いたことがあるので、なるべくSelectを避けるべく以下のVBAを記述しました。 内容は、シート「りんご」のA列~AN列に入っているデータを見出し項目を含めてコピー、そしてSheet1にペーストするというものです。(行数は毎回変化します。) ところが、以下を実行したところ、コピー&ペーストされたのは1行目の見出し項目のみでした。一方、「Range("A1:AN" ~」の前に「Sheets("りんご").Select」を入れたところ、全てのデータをコピー&ペーストすることができました。 この場合は、Selectを使用せずデータをコピー&ペーストすることは不可能なのでしょうか…?!どなたかご回答いただけると嬉しいです、よろしくお願いいたします。  '対象データのコピー&ペースト Sheets("りんご").Range("A1:AN" & Cells(1).CurrentRegion.Rows.Count).Copy Sheets("Sheet1").Paste

  • VBA Selectの省略

    こんばんは、VBAのSelectメソッドの省略について質問させてください。 VBAにおいてSelectを使用すると処理が遅くなると聞いたことがあるので、なるべくSelectを避けるべく以下のVBAを記述しました。 内容は、シート「りんご」のA列~AN列に入っているデータを見出し項目を含めてコピー、そしてSheet1にペーストするというものです。(行数は毎回変化します。) ところが、以下を実行したところ、コピー&ペーストされたのは1行目の見出し項目のみでした。一方、「Range("A1:AN" ~」の前に「Sheets("りんご").Select」を入れたところ、全てのデータをコピー&ペーストすることができました。 この場合は、Selectを使用せずデータをコピー&ペーストすることは不可能なのでしょうか…?!どなたかご回答いただけると嬉しいです、よろしくお願いいたします。  '対象データのコピー&ペースト Sheets("りんご").Range("A1:AN" & Cells(1).CurrentRegion.Rows.Count).Copy Sheets("Sheet1").Paste

  • 同じフォルダー内の別ブックで計算結果を入力

    Aブックsheet1をActiveしており同じフォルダー内にあるBブックのsheet1の検索値"A2"のVLooKUPで出した計算結果13の値のみをAブックsheet1 セル"A2"に入力したいのですが。Excel関数は解るのですがVBA関数となると難しくどなたか解るかた宜しくお願いします。因みにBブックは閉じています。

  • Column の使い方がインターネットで正解、 で

    VBA の Column の表示方法について教えてください。 例えば、 以下のような VBA を記述したいと仮定します。 If (target.Column <> "列BS と表記されている列") Then Exit Sub この "列BS と表記されている列" は、 Excel じょうで列BS と表記されています。 ここに数字を記述すれば正常に動作することは知っています。 つまり [target.Column <> 9] などです。 しかし、 列BS が数字で計算して何番目なのかを数えるために、 1,2,3,4,.... などと面倒なことはしたくありませんし、 列が変更されるたびに数え直さなければいけません。 そのため、 アルファベットで Excel 表示そのままに 列BS と表記したいです。 インターネットで検索すると、 Columns("C") http://excel-ubara.com/excelvba1/EXCELVBA310.html という表記を発見しました。 その通りに入力すると、 以下のエラーになります。 ---------------------------------------- 実行時エラー '13': 型が一致しません。 ---------------------------------------- しかし、 インターネットで発見した正しい表記ですが? 他のサイトも似たような説明ばかりでした。 いろいろ調べましたが、 全く解決できず、 ギブアップ宣言することになってしまいました。 そのため質問させていただきます。 上記の私のソースコードの何が悪かったのでしょうか。 どのように修正すれば、 アルファベット指定できるでしょうか。 教えてください。 よろしく お願い致します。 ************************************************** 注意: OKWave の不具合により、いかのエラーのため返答できませんが、全部の回答を見ています。 ---------------------------------------- この操作は実行できません。 再度ログインをお試しいただき、改めて操作手順をご確認ください。 問題が解決しない場合は、FAQを御確認のうえ、お問い合わせください。 ---------------------------------------- この不具合について OKWave 管理者に問い合わせても、嘘の返答があるだけなので無駄です。 http://okwave.jp/qa/q9226301.html

  • 必要な単語だけ取り出すマクロ

    ”今日の温度は20℃だった。暑い1日だった。”こんな文章があります。 この文章から、”20℃”という言葉だけ取り出して、他の言葉は削除するマクロを教えてください。

  • VBA 画像貼り付けのオプション指定法

    VBA初心者です。MS Office 201で,Excelに画像を貼り付けるとき,アスペクト比を保って幅を指定,位置をセルの位置で指定,名前を付けたいので,ネットを参考にして,以下の通りにしました。 Range("A6").Select 'A6の位置を指定 ActiveSheet.Pictures.Insert(myFile).Select 'myFileはあらかじめ設定 With ActiveSheet.Shapes(3) .LockAspectRatio = True .Width = 160 .Name = "Pict01" '名前はPict01 End With ここで,Shapes(3)の3は,画像やボタンがこのシートで3番目だからです。しかし,マクロ実行前に,ボタン等を増やすと変わってきてしまいます。この(3)の様な指定なしにできませんでしょうか。

  • エクセル2010のVBAでPDFを開きたい

    エクセルのワークシートSheet2にPDFのファイルを挿入しました。アイコン表示になっています。 Sheet1にあるボタンでこのPDFを開こうと思い、見よう見まねで Sub TEST() Worksheets("Sheet2").OLEObjects(1).Verb Verb:=xlPrimary End Sub としたところ、PDFは開くことはひらくのですがアクティブになってくれません。 Worksheets("Sheet2").OLEObjects(1).Activate に変えてもおなじです。 PDFではなくワード文書を張り付けた時には上記のコードでアクティブになってくれたのですが。 どうすればPDFをアクティブに、表に見えるようにできるでしょうか?

  • エクセル2010のVBAでPDFを開きたい

    エクセルのワークシートSheet2にPDFのファイルを挿入しました。アイコン表示になっています。 Sheet1にあるボタンでこのPDFを開こうと思い、見よう見まねで Sub TEST() Worksheets("Sheet2").OLEObjects(1).Verb Verb:=xlPrimary End Sub としたところ、PDFは開くことはひらくのですがアクティブになってくれません。 Worksheets("Sheet2").OLEObjects(1).Activate に変えてもおなじです。 PDFではなくワード文書を張り付けた時には上記のコードでアクティブになってくれたのですが。 どうすればPDFをアクティブに、表に見えるようにできるでしょうか?