watabe007 の回答履歴

全1361件中141~160件表示
  • EXCEL リストボックスのデータから除外したい

    次の3項目のフォームがあります。 "番号" "お店" "分類" これら項目に入力した値からシートデータベースの情報をリストボックスに表示させているのですが、"分類"にあるABCDEの情報のうちDの情報を省いて表示させたいのですがわかりません。 省く指定はチェックボックスを考えています。 ご教授よろしくお願いいたします。 ↓コード Private Sub SetListBox() Dim wRow As Long Dim wLstRow As Long Dim wHitFlg As Boolean Me.lst顧客リスト.Clear wLstRow = 0 With Worksheets("顧客情報") For wRow = 2 To .Range("A1").CurrentRegion.Rows.Count wHitFlg = True If Me.txt顧客名 <> "" Then If InStr(1, .Cells(wRow, .Range("顧客名列").Column), Me.txt顧客名, vbTextCompare) = 0 Then wHitFlg = False End If End If If Me.cmb顧客分類 <> "" Then If .Cells(wRow, .Range("顧客分類列").Column) <> Me.cmb顧客分類 Then wHitFlg = False End If End If If Me.TextBox1 <> "" Then If InStr(1, .Cells(wRow, .Range("フリガナ列").Column), Me.TextBox1, vbTextCompare) = 0 Then wHitFlg = False End If End If If wHitFlg = True Then Me.lst顧客リスト.AddItem "" Me.lst顧客リスト.List(wLstRow, 0) = wRow Me.lst顧客リスト.List(wLstRow, 1) = Worksheets("顧客情報").Cells(wRow, 2) Me.lst顧客リスト.List(wLstRow, 2) = Worksheets("顧客情報").Cells(wRow, 3) Me.lst顧客リスト.List(wLstRow, 3) = Worksheets("顧客情報").Cells(wRow, 8) wLstRow = wLstRow + 1 End If Next End With

  • VBA ユーザーフォーム リストボックスについて

    現在下記のようなコードで ユーザーフォームのリストボックスで表示されている 項目を選択した状態でボタンを押すと 選択されているセルのアドレスを取得するコードを組んでいます。 リストボックスに表示されている(一番左側)番号が 重複していなければ正しく機能するのですが 重複していると、上の方が優先されてしまい 下のリストを選択している状態でコードを実行しても 上のセルのアドレスが表示されてしまいます。 リストの一番左側の番号が重複しているとき 左から2番目の日付と時間の項目(添付画像を参照)を対象にして 正しくセルのアドレスを取得していです。 もし今回のコードのようなやり方でなくても 単純にリストボックスにで選択状態になっているセルアドレスを調べられればそれでもいいです。 Private Sub CommandButton2_Click() Dim ss As String ss = ListBox1.Text If ss <> "" Then Dim r As Range, s As Range Set s = Range(ListBox1.RowSource) Set r = s.Find(ss, LookAt:=xlWhole) If Not r Is Nothing Then MsgBox r.Address(RowAbsolute:=False, ColumnAbsolute:=False) End If End If End Sub

  • EXCEL リストボックスのデータから除外したい

    次の3項目のフォームがあります。 "番号" "お店" "分類" これら項目に入力した値からシートデータベースの情報をリストボックスに表示させているのですが、"分類"にあるABCDEの情報のうちDの情報を省いて表示させたいのですがわかりません。 省く指定はチェックボックスを考えています。 ご教授よろしくお願いいたします。 ↓コード Private Sub SetListBox() Dim wRow As Long Dim wLstRow As Long Dim wHitFlg As Boolean Me.lst顧客リスト.Clear wLstRow = 0 With Worksheets("顧客情報") For wRow = 2 To .Range("A1").CurrentRegion.Rows.Count wHitFlg = True If Me.txt顧客名 <> "" Then If InStr(1, .Cells(wRow, .Range("顧客名列").Column), Me.txt顧客名, vbTextCompare) = 0 Then wHitFlg = False End If End If If Me.cmb顧客分類 <> "" Then If .Cells(wRow, .Range("顧客分類列").Column) <> Me.cmb顧客分類 Then wHitFlg = False End If End If If Me.TextBox1 <> "" Then If InStr(1, .Cells(wRow, .Range("フリガナ列").Column), Me.TextBox1, vbTextCompare) = 0 Then wHitFlg = False End If End If If wHitFlg = True Then Me.lst顧客リスト.AddItem "" Me.lst顧客リスト.List(wLstRow, 0) = wRow Me.lst顧客リスト.List(wLstRow, 1) = Worksheets("顧客情報").Cells(wRow, 2) Me.lst顧客リスト.List(wLstRow, 2) = Worksheets("顧客情報").Cells(wRow, 3) Me.lst顧客リスト.List(wLstRow, 3) = Worksheets("顧客情報").Cells(wRow, 8) wLstRow = wLstRow + 1 End If Next End With

  • EXCEL リストボックスのデータから除外したい

    次の3項目のフォームがあります。 "番号" "お店" "分類" これら項目に入力した値からシートデータベースの情報をリストボックスに表示させているのですが、"分類"にあるABCDEの情報のうちDの情報を省いて表示させたいのですがわかりません。 省く指定はチェックボックスを考えています。 ご教授よろしくお願いいたします。 ↓コード Private Sub SetListBox() Dim wRow As Long Dim wLstRow As Long Dim wHitFlg As Boolean Me.lst顧客リスト.Clear wLstRow = 0 With Worksheets("顧客情報") For wRow = 2 To .Range("A1").CurrentRegion.Rows.Count wHitFlg = True If Me.txt顧客名 <> "" Then If InStr(1, .Cells(wRow, .Range("顧客名列").Column), Me.txt顧客名, vbTextCompare) = 0 Then wHitFlg = False End If End If If Me.cmb顧客分類 <> "" Then If .Cells(wRow, .Range("顧客分類列").Column) <> Me.cmb顧客分類 Then wHitFlg = False End If End If If Me.TextBox1 <> "" Then If InStr(1, .Cells(wRow, .Range("フリガナ列").Column), Me.TextBox1, vbTextCompare) = 0 Then wHitFlg = False End If End If If wHitFlg = True Then Me.lst顧客リスト.AddItem "" Me.lst顧客リスト.List(wLstRow, 0) = wRow Me.lst顧客リスト.List(wLstRow, 1) = Worksheets("顧客情報").Cells(wRow, 2) Me.lst顧客リスト.List(wLstRow, 2) = Worksheets("顧客情報").Cells(wRow, 3) Me.lst顧客リスト.List(wLstRow, 3) = Worksheets("顧客情報").Cells(wRow, 8) wLstRow = wLstRow + 1 End If Next End With

  • key board で COPYは?

    マウスでなく(マウスは使えない場合) key board で COPYは? 何をすれば可能かしら?  有識者様! 教えてくださいませ。

  • 横並びデータを縦並びに変更

    左枠内のように並んでいるデータがあります。 氏名をキーとして商品と個数を右枠内のように、縦並びに変換したいです。 左枠内のデータは1000を超えると想定しておりますので マクロで処理ができればと思っているのですが、 初心者のため、どういう風にマクロを組めばいいかわかりません。。。 ご教授いただければ幸いです。 どうぞよろしくお願いいたします。

  • マクロでコピー貼り付けやってみたいのですが。

    マクロの初心者です。Dim で宣言してやりたいと思っています。 既存のExcelの機能で出来ないことはないと思いますが、敢えて、マクロででないか。 やってみたいと思っています。 やりたいこと等について 1 sheet1のE2:J1109の範囲のデータをコピーしての別sheet2のE3:J1110の範囲に貼り付けたい。 2 その時に最終行を取得してコピーをするとしたら、どんなコードが必要なのか 3 最終行の取得のコードの書き方が分からない 4 ネットで下記のような(一部変更)に作ってみたが、これで良いのでしょうか、わからない。 以上のことを答えて頂けませんか。よろしくお願いします。 Sub テスト() Dim range1 As Range Set range1 = Range("E2:J1109") range1.Copy ActiveSheet.Paste Destination:=("sheet1").Range("E2:J1109") ActiveSheet.Paste Destination:=("sheet2").Range("E3:J1110") Application.CutCopyMode = False End Sub

  • エクセルマクロでEnd Subが見つからないとでる

    Excelのマクロ記述についての質問です.  以下のマクロはエクセルにない関数「IMMULT」をあらかじめ定義するためのものです.(技術計算のHPより入手し,コピーして貼り付けたものです)  これを実行すると「End Subがみつからない」と出てしまいます.End Subは記述しているのになぜでしょうか,どなたか解決策を教えて頂けませんか! Sub 関数定義() Public Function IMMULT(a As Range, b As Range) As Variant Dim r1 As Integer, r2 As Integer, c1 As Integer, c2 As Integer, nn As Integer Dim r As Integer, c As Integer Dim cr As Integer, cc As Integer Dim n As Integer Dim mm() As Variant r1 = a.Rows.Count r2 = b.Rows.Count c1 = a.Columns.Count c2 = b.Columns.Count If (c1 = r2) Then nn = c1 Else Exit Function End If cr = r1 cc = c2 ReDim mm(1 To cr, 1 To cc) For r = 1 To cr For c = 1 To cc mm(r, c) = 0 For n = 1 To nn mm(r, c) = IMSUMa(mm(r, c), IMPRODUCTa(a.Cells(r, n), b.Cells(n, c))) Next Next Next IMMULT = mm End Sub

  • エクセルマクロでEnd Subが見つからないとでる

    Excelのマクロ記述についての質問です.  以下のマクロはエクセルにない関数「IMMULT」をあらかじめ定義するためのものです.(技術計算のHPより入手し,コピーして貼り付けたものです)  これを実行すると「End Subがみつからない」と出てしまいます.End Subは記述しているのになぜでしょうか,どなたか解決策を教えて頂けませんか! Sub 関数定義() Public Function IMMULT(a As Range, b As Range) As Variant Dim r1 As Integer, r2 As Integer, c1 As Integer, c2 As Integer, nn As Integer Dim r As Integer, c As Integer Dim cr As Integer, cc As Integer Dim n As Integer Dim mm() As Variant r1 = a.Rows.Count r2 = b.Rows.Count c1 = a.Columns.Count c2 = b.Columns.Count If (c1 = r2) Then nn = c1 Else Exit Function End If cr = r1 cc = c2 ReDim mm(1 To cr, 1 To cc) For r = 1 To cr For c = 1 To cc mm(r, c) = 0 For n = 1 To nn mm(r, c) = IMSUMa(mm(r, c), IMPRODUCTa(a.Cells(r, n), b.Cells(n, c))) Next Next Next IMMULT = mm End Sub

  • マクロでコピー貼り付けやってみたいのですが。

    マクロの初心者です。Dim で宣言してやりたいと思っています。 既存のExcelの機能で出来ないことはないと思いますが、敢えて、マクロででないか。 やってみたいと思っています。 やりたいこと等について 1 sheet1のE2:J1109の範囲のデータをコピーしての別sheet2のE3:J1110の範囲に貼り付けたい。 2 その時に最終行を取得してコピーをするとしたら、どんなコードが必要なのか 3 最終行の取得のコードの書き方が分からない 4 ネットで下記のような(一部変更)に作ってみたが、これで良いのでしょうか、わからない。 以上のことを答えて頂けませんか。よろしくお願いします。 Sub テスト() Dim range1 As Range Set range1 = Range("E2:J1109") range1.Copy ActiveSheet.Paste Destination:=("sheet1").Range("E2:J1109") ActiveSheet.Paste Destination:=("sheet2").Range("E3:J1110") Application.CutCopyMode = False End Sub

  • マクロのソートについて

    A列:E列のセルデータがあって、空欄を省いて、コピペでるようにしたのでが、新たに、D列を最初にソート、後からB列・C列を連動させてソートしたいのですが、うまく処理できません。ご教授願えませんか。Sheets("ZZZZZZZ")のデータは1行おきのようなデータです。コピペまではできていますが、その後のソートについてお願いします。 Sub Macro1() Application.ScreenUpdating = False Dim Rng As Range Dim LastRow As Long '●ここをだけ"B2:B100"指定する For Each Rng In Sheets("ZZZZZZZ").Range("B2:B100") If Rng.Value <> "" Then LastRow = Sheets("QQQQQQQQ").Cells(Rows.Count, "B").End(xlUp).Row Sheets("QQQQQQQQ").Cells(LastRow + 1, "B").Resize(1, 3).Value = Rng.Resize(1, 3).Value End If Next Rng Application.CutCopyMode = False Application.ScreenUpdating = True End Sub

  • エクセルで最新の30個の合計を出したい

    いつもお世話になっております。 例えばA列に下方向に数値データが入っている表があって日々データが追加されていくのですが、最新データ=一番下のデータから30個のデータの平均を表示させたいのですが。 A列のデータの数を数えてその行から上に30個さかのぼった行から一番下の行までを範囲指定すればよいと思うのですが具体的な式が分かりません。 出来れば関数での方法をお願いします。

  • エクセルで最新の30個の合計を出したい

    いつもお世話になっております。 例えばA列に下方向に数値データが入っている表があって日々データが追加されていくのですが、最新データ=一番下のデータから30個のデータの平均を表示させたいのですが。 A列のデータの数を数えてその行から上に30個さかのぼった行から一番下の行までを範囲指定すればよいと思うのですが具体的な式が分かりません。 出来れば関数での方法をお願いします。

  • エクセルで最新の30個の合計を出したい

    いつもお世話になっております。 例えばA列に下方向に数値データが入っている表があって日々データが追加されていくのですが、最新データ=一番下のデータから30個のデータの平均を表示させたいのですが。 A列のデータの数を数えてその行から上に30個さかのぼった行から一番下の行までを範囲指定すればよいと思うのですが具体的な式が分かりません。 出来れば関数での方法をお願いします。

  • エクセルで最新の30個の合計を出したい

    いつもお世話になっております。 例えばA列に下方向に数値データが入っている表があって日々データが追加されていくのですが、最新データ=一番下のデータから30個のデータの平均を表示させたいのですが。 A列のデータの数を数えてその行から上に30個さかのぼった行から一番下の行までを範囲指定すればよいと思うのですが具体的な式が分かりません。 出来れば関数での方法をお願いします。

  • エクセルで最新の30個の合計を出したい

    いつもお世話になっております。 例えばA列に下方向に数値データが入っている表があって日々データが追加されていくのですが、最新データ=一番下のデータから30個のデータの平均を表示させたいのですが。 A列のデータの数を数えてその行から上に30個さかのぼった行から一番下の行までを範囲指定すればよいと思うのですが具体的な式が分かりません。 出来れば関数での方法をお願いします。

  • Excelのマクロを教えてください!!

    転記するマクロを探していた所、下記の質問を見つけました。 https://okwave.jp/qa/q9554919.html また、watabe007さんの良い回答があった為、下記を参考にさせていただきました。 https://okwave.jp/qa/q9554919/a26683580.html ただ、同じファイル名が複数存在した時に古いファイルのみ転記されるようでした。 (例えば1.csvが3個ある場合、更新日時の古いファイルが転記されてました。) そこで質問ですが、同じファイル名が複数存在した時に1番新しいファイルのみ転記する事は可能でしょうか? 急な質問、大変申し訳ありませんがご教授お願いできないでしょうか?

  • エクセル関数について

    =EDATE(D3,$A7) で、 D3 が 空白だった場合は空白にしたいのですが、 どのような関数になりますか また、同じく、 =IF(TODAY()>EDATE(D3,$A8),EDATE(D3,$A8),"") で D3 が 空白だった場合は空白にしたいのですが、 どのような関数になりますか。

  • さらに問題があります

    『「就業時間基本5:30」なら「A」判定 「就業時間基本2:45」以上「5:29」なら「B」判定 「就業時間基本1:00」以上「2:44」ならば「C」判定 「修行時間基本1:00」未満なら「空白」 と判定させたいです。「就業時間基本」はワークシート関数で求めています。 例えば、2月1日から2月28日まで、VBAを使って「判定する」ならどうすれば良いでしょうか? 基本時間 If 関数で2:45 以上 5:29 「B」 判定としようとすると、おそらくは「シリアル値の問題」で簡単に「B」判定とは出てくれません。 どなたか、正しい判定方法を教えてください。』 に対して、 Option Explicit Function getCode(MyTime As Range) As String  Dim wsTime As Date  wsTime = MyTime.Value - Int(MyTime.Value)  If wsTime = TimeSerial(5, 30, 0) Then   getCode = "A"  ElseIf ((wsTime >= TimeSerial(2, 45, 0)) And _      (wsTime < TimeSerial(5, 30, 0))) Then   getCode = "B"  ElseIf ((wsTime >= TimeSerial(1, 0, 0)) And _      (wsTime < TimeSerial(2, 45, 0))) Then   getCode = "C"  ElseIf wsTime < TimeSerial(1, 0, 0) Then   getCode = ""  Else   getCode = ""  End If End Function で確かに= =getCode(C) でC列から「判定」ができりことはわかりました。 もう一点さらに困っている点があります。 2018年2月 A B・・・・・C      1(金)   5:45 2(土)   5:15 と土曜だけ最大5:15が最大時間となります。 土曜日だけを判定し直すのはどうやったら良いのでしょうか? 曜日を返す変数も入れなければなりません。これも困っているのです。   

  • マクロ ソートをしたいのですが、組み込めますか

    マクロの説明 1.Sub Sample7()はsheet4の列をソートするマクロです。 (単独では、このマクロでソートできる) 2.Sub sample2()はsheet4のソート以外は完成しています。 やりたいこと Sub sample2()の中にsheet4の重複データを削除したもののソートのコードを組み込みたい。 但し、組み込むとしてSub Sample7()のコードでよいのか、初心者なのでよくわかりません。 なお、Sub sample2()のマクロは途中省いています。 Sub Sample7() Sheets("sheet4").Range("A1:A1135").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes End Sub Sub sample2() Dim data As Variant 'データコピー用の使いまわし配列 Dim dic As Object Dim i As Long Set dic = CreateObject("Scripting.Dictionary") 'Sheet4~5のA列をリセット Sheets("Sheet4").Range("A2:A" & Rows.Count).ClearContents Sheets("Sheet5").Range("C3:C" & Rows.Count).ClearContents            ↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 'Sheet4に重複していないデータを書き込み With Sheets("Sheet4") .Cells(Rows.Count, "A").End(xlUp).Offset(1).Resize(dic.Count).Value = Application.Transpose(dic.keys) 'Sheet4のC列をSheet5にコピー data = .Range("C2:C" & .Cells(Rows.Count, "A").End(xlUp).Row).Value End With Sheets("Sheet5").Range("C3").Resize(UBound(data)).Value = data Set dic = Nothing End Sub