cj_mover の回答履歴

全798件中741~760件表示
  • 重複行を完全削除するエクセルのマクロ

    Sub sakujyo() Dim i, ii As Long For i = 1 To Range("a65336").End(xlUp).Row For ii = Range("a65336").End(xlUp).Row To i + 1 Step -1 If Cells(i, 2).Value = Cells(ii, 2).Value _ And Cells(i, 4).Value = Cells(ii, 4).Value _ And Cells(i, 5).Value = Cells(ii, 5).Value Then Dim iii As Byte iii = 1 Rows(ii).Delete Shift:=xlUp End If Next ii If iii = 1 Then Rows(i).Delete Shift:=xlUp iii = 0 Next i End Sub データーが下の表のように入っております。     A    B    C    E    F 1  1/26  a1234  fdsa  5000  C1 2  1/27  a4567  sdfa  4000  T2 3  1/28  a1234  dfsa  5000  C1 4  1/30  b4567  asdf  6600  A2 5  2/10  b4567  fsda  6600  A2 6  2/10  a1234  afds  5000  C1 B列、E列、F列が完全一致(重複1行目と3行目と6行目・4行目と5行目)で削除し結果的に2行目だけ残る方法がしたいのですが、このマクロですと少ないデータですとうまく動くのですが、『大量のデータを一気に削除出来ない』、『同じ重複が3つ以上のデータが多数ある場合データが削除されずに残ってしまう』エラーが出てしまいます。どうかお教えください。

  • 重複行を完全削除するエクセルのマクロ

    Sub sakujyo() Dim i, ii As Long For i = 1 To Range("a65336").End(xlUp).Row For ii = Range("a65336").End(xlUp).Row To i + 1 Step -1 If Cells(i, 2).Value = Cells(ii, 2).Value _ And Cells(i, 4).Value = Cells(ii, 4).Value _ And Cells(i, 5).Value = Cells(ii, 5).Value Then Dim iii As Byte iii = 1 Rows(ii).Delete Shift:=xlUp End If Next ii If iii = 1 Then Rows(i).Delete Shift:=xlUp iii = 0 Next i End Sub データーが下の表のように入っております。     A    B    C    E    F 1  1/26  a1234  fdsa  5000  C1 2  1/27  a4567  sdfa  4000  T2 3  1/28  a1234  dfsa  5000  C1 4  1/30  b4567  asdf  6600  A2 5  2/10  b4567  fsda  6600  A2 6  2/10  a1234  afds  5000  C1 B列、E列、F列が完全一致(重複1行目と3行目と6行目・4行目と5行目)で削除し結果的に2行目だけ残る方法がしたいのですが、このマクロですと少ないデータですとうまく動くのですが、『大量のデータを一気に削除出来ない』、『同じ重複が3つ以上のデータが多数ある場合データが削除されずに残ってしまう』エラーが出てしまいます。どうかお教えください。

  • エクセルの範囲セルの範囲セルについて

    ExcelVBAで、ある範囲のセルを基準として、その範囲の中の範囲を表したい のですが、どうすればよいのでしょうか? 以下のセルで、A1:D2の範囲を使ってA2からD2の範囲を表す方法です。 A1 B1 C1 D1 A2 B2 C2 D2 A2のセルはRange("A1:D2").Cells(2,1)で表すように Range("A2:D2")でなく、Range("A1:D2")を使ってA2からD2の範囲を表す方法が知りたいです。

  • VBA 変数

    毎度お世話になります。 先日も同じような質問をさせていただいたのですが、 パターンが替わると手も足も出ません。 Dim myweek As Integer myweek = Worksheets(Sheets.Count).Range("A1").Value Worksheets(Array("○○第" + myweek + "週", " ◇◇第+ myweek + "週")).Select  という具合にシート名の週の数字だけを変数にしようとしていますが、うまくいきません。 指摘と修正お願いします。 補足Range("A1")には数字が入っています。   ○○、◇◇は固有名詞です。

  • コンボボックスの設定で困っています。

    【1 OSの種類         .】 Windows XP 【2 Excelのバージョン   】 Excel2000 【3 VBAが使えるか    .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード     】 コンボボックス LinkedCell コンボボックスで困っています。 LinkedCellに表示したキーを 別のカラムにてVLOOKUPで受け取り、 関連情報を表示させたいのですが、 該当するLinkedCellを選んでキー末尾でダブルクリック&Enterを行わないと 関連情報が表示できないのです。 コンボボックスで選択したキーには空白などは入っていないことは確認しました。 アドバイスをお願いいたします。

  • Excelで指定範囲の固定方法

    すいません、Excel(2000)で入力作業をする際、例えば行を1.2.3と指定して、A3でEnterでB1、B3でEnterでC1、・・・・と移動できるように使っていた場合で、矢印キーやマウスでセルをクリックした場合、指定した範囲が解除され、また範囲を指定し、入力セルまでEnterキーなどで移動しなければいけない状態によくなってしまいます。そのような状況にならないように、矢印キーやセルをクリックしても指定範囲が解除されないように固定したいんですが、出来ないのでしょうか?

  • Excelで特定の文字列があるかないかの検査

    Excel VBAで文字列を調べて、そのセルに文字列が存在すれば切り抜いて変数に保存するという作業を行いたいと 思っています。例えば、本という列があるとします。本の列には、 $$book=本 $$books=本部類 という値が入っていたりします。"="以降を切り抜いて、bookは列1、booksは列2に挿入したいと思います。 この場合、"本"という値は列1へ、"本分類"という値は列2へ入ることになります。 この文字列の調べ方がわかりません。Instr関数を使うことを考えたのですが、どちらの値もヒットしてしまいます。 どのような関数を使ったら上手に文字列を切り抜くことが可能でしょうか?

  • エクセルでシート名が変わる数式の簡単入力法?

    =IF(F34=0,0,明細書20!$S$50) という式があります。 この式を、下の行方向に =IF(F34=0,0,明細書21!$S$50) =IF(F35=0,0,明細書22!$S$50) 途中の76行を略します =IF(F112=0,0,明細書99!$S$50) =IF(F113=0,0,明細書100!$S$50) と、作成したいのですが、簡単にするにはどうしたらよいでしょうか? 参照先のシート名(明細書)のNoさえ変わらなければフィルドラッグできるんですが 困っております。

  • エクセルでシート名が変わる数式の簡単入力法?

    =IF(F34=0,0,明細書20!$S$50) という式があります。 この式を、下の行方向に =IF(F34=0,0,明細書21!$S$50) =IF(F35=0,0,明細書22!$S$50) 途中の76行を略します =IF(F112=0,0,明細書99!$S$50) =IF(F113=0,0,明細書100!$S$50) と、作成したいのですが、簡単にするにはどうしたらよいでしょうか? 参照先のシート名(明細書)のNoさえ変わらなければフィルドラッグできるんですが 困っております。

  • VBA For Eachでセル内の文字列を一個ずつ取り出すには

    エクセル2000です。 たとえばA1セル内の文字列を一個ずつ取り出す場合、 Sub test01() For i = 1 To Len(Range("A1").Value) Cells(i, "B").Value = Range("A1").Characters(i, 1).Text Next End Sub このように最初から最後の文字まで何番目で指定することはわかるのですが、これをFor Each で回すにはどうしたらよいでしょうか? (⌒o⌒)? お教えください。 Sub test02() For Each ch In Range("A1").Characters i = i + 1 Cells(i, "B").Value = ch Next End Sub ではエラーになります。

  • VBA For Eachでセル内の文字列を一個ずつ取り出すには

    エクセル2000です。 たとえばA1セル内の文字列を一個ずつ取り出す場合、 Sub test01() For i = 1 To Len(Range("A1").Value) Cells(i, "B").Value = Range("A1").Characters(i, 1).Text Next End Sub このように最初から最後の文字まで何番目で指定することはわかるのですが、これをFor Each で回すにはどうしたらよいでしょうか? (⌒o⌒)? お教えください。 Sub test02() For Each ch In Range("A1").Characters i = i + 1 Cells(i, "B").Value = ch Next End Sub ではエラーになります。

  • ExcelVBA 名簿の別ブック(CSV)へコピーについて

    VBAは学生時代勉強したもののすっかり忘れてしまい、初心に返って現在参考書を読みながら取り掛かっていますが、 望むような動作が出来ず大変困っています。下記のようなデータを新規ブックAへある条件でコピーし、 CSVとして保存したく、試行錯誤中です。 (A:1)(G:15)までタイトル行にあったデータが入っている名簿があります。 (G:15)でデータは終了ですが、別の名簿も扱う事があり、別の名簿はデータの終了行は(G:15)とは限りません。 -------------------------------------------------------------- (A列)(B列) (C列) (D列) (E列) (F列) (G列)  No   姓    名  姓カナ  名カナ  年齢  性別  1  2  3  ・  15  空白  空白  空白  空白  空白  空白  空白 -------------------------------------------------------------- コピー条件 (1)データの開始行検索&終了行検索(空白セル) (2)データ内の検索(文字or数字) (3)データの開始行から終了行まで新規ブックAへ下記を繰り返す (4)A列のデータを新規ブックAへコピー (5)タイトル行のデータ入力(A列:同じ)(B列:名前)(C列:カナ) (6)B列+全角スペース+C列のデータを新規ブックAのB列へコピー (7)D列+半角スペース+E列のデータを新規ブックAのC列へコピー (8)G列のデータを新規ブックAのD列へコピー (8)F列のデータを新規ブックAのE列へコピー (9)新規ブックを本ファイル名+YYYYMMDD.csvでデスクトップへ保存 -------------------------------------------------------------- 図々しい質問ですが、具体的なコードのお知恵をお貸し頂けたら大変助かります。どうぞ、よろしくお願いいたします。

  • ExcelVBA 名簿の別ブック(CSV)へコピーについて

    VBAは学生時代勉強したもののすっかり忘れてしまい、初心に返って現在参考書を読みながら取り掛かっていますが、 望むような動作が出来ず大変困っています。下記のようなデータを新規ブックAへある条件でコピーし、 CSVとして保存したく、試行錯誤中です。 (A:1)(G:15)までタイトル行にあったデータが入っている名簿があります。 (G:15)でデータは終了ですが、別の名簿も扱う事があり、別の名簿はデータの終了行は(G:15)とは限りません。 -------------------------------------------------------------- (A列)(B列) (C列) (D列) (E列) (F列) (G列)  No   姓    名  姓カナ  名カナ  年齢  性別  1  2  3  ・  15  空白  空白  空白  空白  空白  空白  空白 -------------------------------------------------------------- コピー条件 (1)データの開始行検索&終了行検索(空白セル) (2)データ内の検索(文字or数字) (3)データの開始行から終了行まで新規ブックAへ下記を繰り返す (4)A列のデータを新規ブックAへコピー (5)タイトル行のデータ入力(A列:同じ)(B列:名前)(C列:カナ) (6)B列+全角スペース+C列のデータを新規ブックAのB列へコピー (7)D列+半角スペース+E列のデータを新規ブックAのC列へコピー (8)G列のデータを新規ブックAのD列へコピー (8)F列のデータを新規ブックAのE列へコピー (9)新規ブックを本ファイル名+YYYYMMDD.csvでデスクトップへ保存 -------------------------------------------------------------- 図々しい質問ですが、具体的なコードのお知恵をお貸し頂けたら大変助かります。どうぞ、よろしくお願いいたします。

  • エクセルVBAでRangeの引数制限?

    エクセル2000です。 Sub test() Range("A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31,A32,A33,A34,A35,A36,A37,A38,A39,A40,A41,A42,A43,A44,A45,A46,A47,A48,A49,A50,A51,A52,A53,A54,A55,A56,A57,A58,A59,A60,A61,A62,A63,A64,A65,A66,A67,").Select End Sub 上記の67個のセルを選択するマクロを実行すると 「実行時エラー1004 Rangeメソッドは失敗しました。'Global'オブジェクト」となってしまいます。 一個へらして66個にすると問題なく選択されます。 Rangeに個別で記載できる引数は66個までなのでしょうか? 質問に書いたセルは、数が一目でわかるための例なので、Range("A1:A67").Selectという回答以外でお願いします。

  • エクセルVBAでRangeの引数制限?

    エクセル2000です。 Sub test() Range("A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31,A32,A33,A34,A35,A36,A37,A38,A39,A40,A41,A42,A43,A44,A45,A46,A47,A48,A49,A50,A51,A52,A53,A54,A55,A56,A57,A58,A59,A60,A61,A62,A63,A64,A65,A66,A67,").Select End Sub 上記の67個のセルを選択するマクロを実行すると 「実行時エラー1004 Rangeメソッドは失敗しました。'Global'オブジェクト」となってしまいます。 一個へらして66個にすると問題なく選択されます。 Rangeに個別で記載できる引数は66個までなのでしょうか? 質問に書いたセルは、数が一目でわかるための例なので、Range("A1:A67").Selectという回答以外でお願いします。

  • エクセルVBAでRangeの引数制限?

    エクセル2000です。 Sub test() Range("A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,A15,A16,A17,A18,A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31,A32,A33,A34,A35,A36,A37,A38,A39,A40,A41,A42,A43,A44,A45,A46,A47,A48,A49,A50,A51,A52,A53,A54,A55,A56,A57,A58,A59,A60,A61,A62,A63,A64,A65,A66,A67,").Select End Sub 上記の67個のセルを選択するマクロを実行すると 「実行時エラー1004 Rangeメソッドは失敗しました。'Global'オブジェクト」となってしまいます。 一個へらして66個にすると問題なく選択されます。 Rangeに個別で記載できる引数は66個までなのでしょうか? 質問に書いたセルは、数が一目でわかるための例なので、Range("A1:A67").Selectという回答以外でお願いします。

  • エクセル/条件式 "<>=?" の意味は?

    エクセル2000です。 指定範囲にあるセルの数を返す数式はたとえば、 =ROWS(A1:B10)*COLUMNS(A1:B10) などはすぐ思いつくのですが、 =COUNTIF(A1:B10,"<>=?") という式でも求められるようです。 この、COUNTIFの条件式 "<>=?" の意味がまったくわかりません。 質問1. "<>=? とはどういう意味でしょうか? 質問2. ネットで "<>=?"を検索しても一件もヒットしません。このような記号を検索するためにはどう入力すればよいのでしょうか?

  • 今まで使ってたユーザーフォームがいきなり使えなくなりました。

    UserForm1に テキストボックスの追加やコマンドボタンの移動などを行なったところ 「実行時エラー91 オブジェクト変数、またはwithブロック変数が設定されていません。」 となってしまいます。 デバックしてもなにもエラーが見つかりません。 何が原因なのかさっぱりわかりません。 助けてください。 補足があれば追加します。 (2003 エクセル) よろしくお願いします。

  • 配列で格納したものをmsgboxで表示する方法について

    教えてください。 a(i)の配列で、たくさん格納したものを、 MSGBOXで表示したいと思います。 iの数は不定で毎回かわるため、 MsgBox a(1) & vbCrLf & & a(2) & vbCrLf & a(3) & ・・・ と表示してしまうと、いくつまで表示したらよいかわからなくなってしまいます。 msgbox a(i) だと、最後の一つしか表示されませんし・・・。 こういう場合どのように対処していますか? どうぞよろしくお願いします。

  • 論理関数、IFとANDを組み合わせた場合

    いきなりですが・・・ =if(and(b11=0,b12+b13+b14+b15+b16=1),e7,if(and(b11=0,b12+b13+b14+b15+b16=2),e7*1/2,if(and(b11=0,b12+b13+b14+b15+b16=3),e7*1/3,if(and(b11=1,B12+b13+b14+b15+b16=1),e7*1/2,if(and(b11=1,B12+b13+b14+b15+b16=2),e7*1/4という具合で数式を入れていましたが、この流れで、30回くらい?繰り返し入力していたら、途中から急に貴方の関数は間違いです的な感じで数式が反映されなくなりました。 WORDみたいにある程度の入力したら、それ以上は無理という決まりがExcelにもあるのでしょうか? 何回も見直しましたが、私の入力ミスは見当りません。 誰か具体的な解答を教えていただけませんか? 因みに、ほとんどExcelに関しては素人です。 上記の数式?くらいなら反映されるのですが・・・。