kobouzu_su の回答履歴
- フィルタで検索した行をマクロで削除する時のコード。
フィルタで検索した行を一括して削除するマクロを作りました。 記録して加工したマクロで今のところ動くのですが、 理解不能の箇所があるので教えてください。 下記マクロはC列の空白行をフィルターで選択して、表示された行を削除するマクロです。(データは2行目から始まっていて、フィルターは1行目に行います。また、行は全て連続しています。) また、コメントを各コードにつけています。 ここで、コメント内の(1)で示した箇所は2行目を選ぶことになっているのですが、何故これで良いのでしょう?2行目のデータがフィルターにより隠れることもあるのですが、このコードできちんと動きます。 可視セルしか削除しないのなら、分かるのですが、 そのようなコードも無いようですし・・・ なぜこのコードで動くのか教えてください。 Rows("1:1").Select '1行目を選ぶ Selection.AutoFilter 'オートフィルター Range("C1").Select 'C1を選ぶ Selection.AutoFilter Field:=3, Criteria1:="=" '空白行を探す。Field3は不明です Rows("2:2").Select '(1) 2行目を選択 Range(Selection, Selection.End(xlDown)).Select '2行目から連続した最後の行までを選択 Selection.Delete Shift:=xlUp '選んだところをDelして上に詰める。 Range("C1").Select 'C1を選ぶ Selection.AutoFilter Field:=3 'フィルタ解除 基本的なことかもしれませんが、ご教示頂ければ幸いです。 よろしくお願いします。
- ベストアンサー
- Visual Basic
- noname#200584
- 回答数1
- Excelのセルからメニューが表示されない
カテゴリ違いだった為、再質問させて頂きます。 Excel2003でセル(単独 or 複数)を選択して、右クリックをしても メニュー(コピー、ペースト等々)が表示されなくなってしまいました。【SHIFT+F10】も効かなくなってしまいました。 きっと、何かやっちゃったのだと思いますが、全く覚えが無い状況です。 どなたか、同じ事象になった事がある方居りましたら、ご教示お願いします。 ※【CTL+V】【CTL+C】【CTL+1】は問題なく機能します。 ※マシンの再起動もしましたが状況は変わりませんでした。 ※Wordやexplorerでの右クリックや【SHIFT+F10】は問題ありませんでした。 ※Excelのauto_openマクロも触ってたので削除しましたが、一緒でした。 ※ブック、シートの保護は関係無さそうです。新規Bookや既存のBookも同様の事象です。 ※ツール⇒オプション⇒全般⇒起動時に全てのファィルを開くフォルダ も関係無さそうです。
- エクセルVBAで配列?
以下は、文字列"t", "e", "s", "t"を配列に取り込み、セルに表示する例ですが、 ar = Array("t", "e", "s", "t") なら作動しますが、セル範囲から取り込もうと、 ar = Range("A1:D1").Value とするとエラーになります。 どうしてでしょうか? Sub test() Dim ar As Variant Dim n As Integer ar = Array("t", "e", "s", "t") 'ar = Range("A1:D1").Value For n = LBound(ar) To UBound(ar) Cells(n + 1, 5) = ar(n) Next n End Sub
- エクセルVBAで配列?
以下は、文字列"t", "e", "s", "t"を配列に取り込み、セルに表示する例ですが、 ar = Array("t", "e", "s", "t") なら作動しますが、セル範囲から取り込もうと、 ar = Range("A1:D1").Value とするとエラーになります。 どうしてでしょうか? Sub test() Dim ar As Variant Dim n As Integer ar = Array("t", "e", "s", "t") 'ar = Range("A1:D1").Value For n = LBound(ar) To UBound(ar) Cells(n + 1, 5) = ar(n) Next n End Sub
- 2003で作ったマクロを2000で実行するとエラーがでてしまう!
エクセル2003で作ったマクロを2000で実行すると、「コンパイル エラー : 名前付き引数が見つかりません。」とエラーが出てしまいます。 2003ではエラーが出ないので間違ってはいないと思うのですが、原因が分かりません。何卒、ご教授いただけませんでしょうか? 内容は以下になりますが、「DataOption」が反転で白字になるのでここに原因があると思うのですが、見よう見まねで作ったのでさっぱり分かりません…。 予約帳の入力フォームで、別シートに作ってあるリストから選択して月別に登録していくというような内容です。 宜しくお願い致します。 With ActiveSheet mySNewRow = .Range("A65536").End(xlUp).Row + 1 .Cells(mySNewRow, "A") = cboDay.Value .Cells(mySNewRow, "B") = cboArea.Value .Cells(mySNewRow, "C") = cboTime.Value .Cells(mySNewRow, "D") = cboBusnumber.Value .Cells(mySNewRow, "E") = txtName1.Value .Cells(mySNewRow, "F") = txtNumber.Value .Cells(mySNewRow, "H") = txtCharge.Value .Cells(mySNewRow, "I") = cboLodging.Value .Cells(mySNewRow, "K") = txtRemarks.Value .Cells(mySNewRow, "L") = cboInput.Value .Cells(mySNewRow, "G") = lstName1.Value .Cells(mySNewRow, "J") = lstName2.Value End With Range("A6:A605").Select Range("A5:L605").Sort Key1:=Range("A6"), Order1:=xlAscending, Key2:=Range _ ("C6"), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _ :=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:= _ xlSortNormal, DataOption2:=xlSortNormal Unload userform1 userform1.Show End Sub
- 締切済み
- オフィス系ソフト
- noname#89584
- 回答数2
- エクセルVBAで配列?
以下は、文字列"t", "e", "s", "t"を配列に取り込み、セルに表示する例ですが、 ar = Array("t", "e", "s", "t") なら作動しますが、セル範囲から取り込もうと、 ar = Range("A1:D1").Value とするとエラーになります。 どうしてでしょうか? Sub test() Dim ar As Variant Dim n As Integer ar = Array("t", "e", "s", "t") 'ar = Range("A1:D1").Value For n = LBound(ar) To UBound(ar) Cells(n + 1, 5) = ar(n) Next n End Sub
- エクセルVBAで配列?
以下は、文字列"t", "e", "s", "t"を配列に取り込み、セルに表示する例ですが、 ar = Array("t", "e", "s", "t") なら作動しますが、セル範囲から取り込もうと、 ar = Range("A1:D1").Value とするとエラーになります。 どうしてでしょうか? Sub test() Dim ar As Variant Dim n As Integer ar = Array("t", "e", "s", "t") 'ar = Range("A1:D1").Value For n = LBound(ar) To UBound(ar) Cells(n + 1, 5) = ar(n) Next n End Sub
- VB6で指定したエクセルの列を削除したい。
29列ある表なんですが、その内見出しと対応するチェックボックスにチェックが入っていた場合その列を削除して表を詰めたいのですが、うまくいきません。(きれいに削除になりません。)何か方法はないでしょうか。 Rem 非出力項目を非出力にする For i = 1 To 29 If .Cells(1, i).Text = "AAA" And Frm設定.ChkAAA.Value = 1 Then .Columns(i).Delete If .Cells(1, i).Text = "BBB" And Frm設定.ChkBBB.Value = 1 Then .Columns(i).Delete If .Cells(1, i).Text = "CCC" And Frm設定.ChkCCC.Value = 1 Then .Columns(i).Delete If .Cells(1, i).Text = "DDD" And Frm設定.ChkDDD.Value = 1 Then .Columns(i).Delete If .Cells(1, i).Text = "EEE" And Frm設定.ChkEEE.Value = 1 Then .Columns(i).Delete 中省略(全部で12項目あります) Next i
- ベストアンサー
- Visual Basic
- noname#33277
- 回答数2
- エクセル2000のマクロで教えて下さい。
日々あるデータが送られてきます。 A~AEまであります。 マクロで下記のようにしたいのです。 残すのはA、C、N、T、U、V、W、Z、AAのみですが順序を入替えたい。 順番としてC、A、T、U、W、V、AA、Z、Nの順です。 どのようにすれば良いのか教えて下さい。 もし補足が必要なら申し付け下さい。
- VB6で印刷の幅を調べたい
VB6(SP5)でプログラミングをしております。 印刷で、Printer.Print("ABC")と、実行したとします。 フォントサイズにより、横幅が異なります。 このインチ幅(twip)を先に確認するにはどうすれば 良いのでしょうか? 宜しくお願い致します。
- ベストアンサー
- Visual Basic
- m-toshi
- 回答数1
- Excelで勝手に書式が設定される
人からもらったExcelの表で、5列(A~E列)500行の罫線を引いた表があります。 今、F列の横揃えは選択されてない状態ですが、ここに数字データを入れると自動的に中揃えになります。 又、他のセルでは数字データを入れるとセルの右側に縦罫線が自動的に入ります。 何でこのようになるのでしょうか?
- ExcelVBAで行と列の検索
A B C D E 1 コード あ い う え 2 10 ○ ○ 3 20 ○ ○ 4 30 ○ 上記の表が5000件あります。Textbox1に入力し検索ボタンを押すと A列のコードを検索して一致する列の○のあるところの1行目の項目 をtextbox2に表示したいのですがうまく行きません。 よろしくお願い致します。 Private Sub CommandButton1_Click() '検索フォームボタン Dim i As Long Dim 最終行 As String Dim サーチ行 As Long Sheets(1).Activate 最終行 = Range("A1").End(xlDown).Row サーチ行 = 0 For i = 2 To 最終行 If TextBox1.Value = Range("A" & i) Then If Range("B" & i, "N" & i) = "" Then TextBox2.Text = Range("B1", "N1") サーチ行 = i Exit For End If End If Next If サーチ行 = 0 Then MsgBox TextBox1.Value & "データはありません。", vbInformation, "無し" End If TextBox1.SetFocus End Sub エラーはでません。データはありませんとなります。
- ベストアンサー
- その他(プログラミング・開発)
- cocoku
- 回答数4
- VBAのAdvancedFilterについて with構文で囲まないとオブジェクト定義エラーになる理由
エクセルでVBAの下記コードで実行すると、実行時エラー'1004' アプリケーション定義またはオブジェクト定義のエラーとなりますが、 Worksheets("作業用").Activate Worksheets("職員").Range(Cells(6, 1), Cells(Wrow, 12)).AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Range("a6:c8"), CopyToRange:=Range("d6:z2000"), Unique:=False それを下記のようにwith end with構文で囲むとエラーとなりません。 形式的には同じコードに見えるのですが、実質的に何が違うためオブジェクト定義エラーにならないのでしょうか。 AdvancedFilterに限らず、しばしば同様の原因によるエラーに悩まされていますので、ご教示いただければ幸いです。 Worksheets("作業用").Activate With Worksheets("職員") .Range(.Cells(6, 1), .Cells(Wrow, 12)).AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Range("a6:c8"), CopyToRange:=Range("d6:O2000"), Unique:=False End With
- エクセル マクロで行き詰まりました。助けて・・・
エクセル初心者です。初心者にも関わらず、マクロに挑戦して壁にぶち当たりました。やはり限界です。教えてください! <やりたい事> SHEET1に必要項目を入力してから計算開始ボタンを押す。計算結果を別シートに表示させると同時に、ボタンを押す毎にその計算結果を履歴として積み重ねる。 今回の計算結果 A B C D E 1 四月 20 30 40 2 9 履歴 10 2回前 六月 40 30 40 11 1回前 五月 30 40 50 12 今回 四月 20 30 40 うまく説明できませんが、数式セルを値だけコピーして、ボタンを押す度に自動改行しながらペーストをするというマクロなんだと思うんですが・・・。 非常に困っています。どうか宜しくお願いします。
- ベストアンサー
- Visual Basic
- exceling
- 回答数5
- エクセルでVLOOKUP関数の効率的な使い方を教えて下さい
こんばんは 私の会社で300人分の従業員の給与計算をエクセルで計算する事になりました。 殆どの勤務時間がパターン化されているので、勤務形態と賃金を30個ぐらいでパターン化し、一つ一つにコードNOをつけ、一つのシートに従業員の名前が300人分が既に入っていて、VLOOKUP関数を使ってコードNOを入力すると勤務形態と賃金を自動で入れる事にしました。 いざ使う段になって入力担当の人からコードを探すのが面倒だと指摘をされました。 私の会社はあらゆる会社の従業員を派遣しているので、沢山のコードが出来てしまうのは仕方ないとは思っていました。 時間と時給を入力すると自動的に計算する仕方もありましたが、派遣先ごとに時給が違ったり、余り計算式を入れてしまうと逆に容量が重くなり上から良く思われなっかたのでこういう仕方が効率的だと思っていました。 ドロップダウンリストを使ってコードNOを探す方法も考えましたが、コードNOが30もあるので断念しました。 会社では給与作成ソフトを購入するつもりはないみたいです。 何か良い手がありましたら教えて下さい。
- 締切済み
- その他(業務ソフトウェア)
- nakomaru
- 回答数2
- エクセルでセルをクリックすると“○”と入力
エクセルでセルをクリック(またはダブルクリック)すると“○”と入力され、もう一度クリックすると空欄に戻るよう設定したいのですが、マクロを使わないとできないのでしょうか?マクロを使用せずセルの設定でもできますか?どちらでできるのでしょうか、またその方法も教えてください。
- WORDマクロエラー
Wordでテキストボックスをレイアウト枠に変換するマクロを作りました。 簡単なコードだと思うのですが、「オブジェクト変数またはブロック変数が設定されていません」というエラーが出てしまいます。 どこに原因があるのでしょうか? Sub テキストボックス変換() Dim i Dim sp As Shape For i = 1 To ActiveDocument.Shapes.Count If sp.Type = msoTextBox Then sp.ConvertToFrame End If Next End Sub
- WORDマクロエラー
Wordでテキストボックスをレイアウト枠に変換するマクロを作りました。 簡単なコードだと思うのですが、「オブジェクト変数またはブロック変数が設定されていません」というエラーが出てしまいます。 どこに原因があるのでしょうか? Sub テキストボックス変換() Dim i Dim sp As Shape For i = 1 To ActiveDocument.Shapes.Count If sp.Type = msoTextBox Then sp.ConvertToFrame End If Next End Sub
- WORDマクロエラー
Wordでテキストボックスをレイアウト枠に変換するマクロを作りました。 簡単なコードだと思うのですが、「オブジェクト変数またはブロック変数が設定されていません」というエラーが出てしまいます。 どこに原因があるのでしょうか? Sub テキストボックス変換() Dim i Dim sp As Shape For i = 1 To ActiveDocument.Shapes.Count If sp.Type = msoTextBox Then sp.ConvertToFrame End If Next End Sub
- ASP、PHPとは?
検索方法が悪いのか、ここで過去回答を調べてみましたが今ひとつ理解できませんでした。 ネット検索でも理解には至りませんでした。 本屋で関連本を読んでみても?でした。 ASPとPHPについて分かり易く説明していただけないでしょうか。 また、どのような場面で使用されているのでしょうか。 よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- sgw_7151
- 回答数4