ベストアンサー エクセル VBA 2012/02/16 00:02 既出でしたら、すみません。 方法を探して試行錯誤したうえで質問させていただきます。 添付の画像のように 1行目は見出しなので範囲外 2行目以降、A列をみて行を上に作り結合するといったものです。 どうにか、お力添えください。 宜しくお願いします。 画像を拡大する みんなの回答 (2) 専門家の回答 質問者が選んだベストアンサー ベストアンサー mt2008 ベストアンサー率52% (885/1701) 2012/02/16 12:21 回答No.2 ANo.1です。 1行目も結合セルの一部の場合、1行目に空白行を挿入しちゃいますね。失礼しました。 i = Cells(i, 1).MergeArea.Row の下に↓を追加して下さい。 If i = 1 Then Exit Sub 質問者 お礼 2012/02/21 23:48 お礼、お返事遅くなりまして申し訳ありません。 自分は、以下のように使用させていただいています。 ' A列を見て、行を追加 Range("A1").Select Dim i4 For i4 = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 i4 = Cells(i4, 1).MergeArea.Row Range(Cells(i4, 1), Cells(i4, 8)).Insert Shift:=xlDown Range(Cells(i4, 1), Cells(i4, 8)).Merge X% = Worksheets("印刷用").Columns(1).SpecialCells(xlLastCell).Row Worksheets("印刷用").Columns(5).SpecialCells(xlBlanks).Interior.Color = RGB(204, 255, 204) Next i4 ' ここまで ※実際はA列からH列まであったのでRange(Cells(i4, 1), Cells(i4, 8))にさせていただきました。 そして、データ最終行まで取得しBlankCell(空白セル)に色を付けてます。参考になるか判りませんが載せときます。 mt2008様、ありがとうございました。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 その他の回答 (1) mt2008 ベストアンサー率52% (885/1701) 2012/02/16 11:37 回答No.1 こんな感じかな。 MergeArea を上手く使うのがポイントです。 Sub Sample() Dim i For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 i = Cells(i, 1).MergeArea.Row Range(Cells(i, 1), Cells(i, 5)).Insert Shift:=xlDown Range(Cells(i, 1), Cells(i, 5)).Merge Next i End Sub 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発Visual Basic 関連するQ&A エクセルで結合セルがあるため最終行が解りません。 エクセルで結合セルがあるため最終行が解りません。 A列2行目と3行目が結合セル(見出し)のためA列の最終行(罫線を除きデータが入ってる行)を求めれなくて困ってます。データは4行目以降から入力していく予定ですが Range("A" & Rows.Count).End(xlUp).Row は2となるため+1で入力行を求めてると3となってしまいます。A4からAの最後の行の範囲で罫線を除く最終行を出せればよいのですが 最初は4 以下順次5 6 7 ‥ どなたかご教示頂けないでしょうか? エクセル マクロ VBA エクセルのマクロについて質問です。 『集計』というブックの『集計開始』というシートに A列 B列 C列 1行目 見出し 見出し 見出し (商品名) (支店) (個数) 2行目 コメント 空白 空白 3行目 空白 空白 空白 4行目 商品名 支店 個数 5行目 空白 空白 空白 6行目 空白 空白 コメント1 7行目 空白 空白 空白 8行目 空白 空白 コメント2 9行目以降 上記のデータ(見出しを除く)の繰り返し というデータが入っています。 B列の中に『AAA』という文字が含まれていたら、そのセルを空白に置換し、 含まれていなかったら、そこで処理がとまったりエラーが出たりしないで次のステッップへ進み、 C列の中に『B』という文字が含まれていたら、そのセルを空白に置換し、 含まれていなかったら、そこで処理がとまったりエラーが出たりしないで次のステッップへ進み、 (今は、手作業で編集→置換→検索する文字列の中に『B*』と入力し、 置換後の文字列を空白にしてすべて置換ということをやっています。) ABC列(データーの入っている行まで)の空白を含む行を一括削除し、 以下のような形にしたいのです。 A列 B列 C列 1行目 見出し 見出し 見出し (商品名) (支店) (個数) 2行目 商品名 支店 個数 3行目 商品名 支店 個数 ・ ・ このようにするマクロ文はどのようになりますでしょうか? この業務をExcel VBAでどう組めばよいですか ご覧頂きありがとうございます。 現在アビバでExcel VBAを学んでいますが、多少はコードが読めたり弄ったりできるようになりましたが、1からロジックを組んで書き上げる事はまだ到底できそうにありません。。。 添付の画像を基に 下記の作業をどなたか回答例を書いて頂けませんか>< お願いします! ---------------------------- 1. (1).xlsmのA3セルの値が(2).xlsmのA列に無いか 上から順番に調べ、”最初に合致した箇所”を調べる →合致する値がある時 ・それぞれのB列(チェック)に 〇 を記入 ・(1).xlsmと(2).xlsmのSheet2に、それぞれ 〇 を記入した”行すべて”の値を張り付ける →合致する値がない時 ・次の行へ移動する((1).xlsmのA3→A4) 2. 順番1. をA列の一番下の行までデータがなくなるまで繰り返す 3. (1).xlsmと(2).xlsmのSheet3に、それぞれ 〇 が記入されていない”行すべて”の値を張り付ける (サンプル) (1).xlsm A品番 395011500033920 220680700001422 241670200000110 348646464554646 395011500033920 167311400021200 (2).xlsm B品番 167311400021200 395011500033920 220680700001422 241670200000110 167311400021200 241670200000110 ---------------------------- 分かりづらいところがあれば補足いたします、 お力添えください>< ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム Excel VBA - 空白の結合 以下のようなExcelのシートがあります。 A2からC7を選択した後、マクロを走らせて空白セルを結合したいです。 A B C 1 (空白) DDD (空白) 2 ABC 123 (空白) 3 (空白)(空白)(空白) 4 DEF GHI DEF 5 (空白)(空白)(空白) 6 (空白) 789 123 7 (空白)(空白)(空白) 8 GHI JKL MNO A3はA2と結合、A5,6,7はA4と結合、B列、C列も同様です。 要は、空白セルを上にある値の入ったセルと結合したいのです。 ただ、C2が選択範囲外のC1と結合すると困るので、先頭行の空白は、上の選択範囲外セルと結合しないようにしたいです。C2とC3は、結合しませんが、結合する仕様でも問題ありません。 (A2と同じ値をA3に入れた方がいいという意見があると思いますが、会社の表なので結合しないといけません。) ※以前、似たような質問をしましたが、少し違います。(これは未解決です。) エクセルVBAについて エクセルVBAについて 下記のようなマクロで、選択したセルの、列の背景色の切り替えを行いたいと思っています。 が、写真のように、塗りつぶしを行いたいセルが結合しているところと、 そうでないところがあり、列全体に、うまく塗りつぶしができません。 '列の背景色を変更 Cells.Interior.ColorIndex = xlNone Dim i As Long i = Target.Column Columns(i).Interior.ColorIndex = 6 Columns(i + 1).Interior.ColorIndex = 6 また、選択するセルは、2行目で、2列が結合しています。 うまく、2列が結合しているセルにも、塗りつぶしを適用することは可能でしょうか? また、できれば列全体の塗りつぶしでなく、行の範囲も指定できればと思っています。 写真では、2列が結合していない部分のみ、塗りつぶしが適用されています。 表の構成上、結合しているセルとそうでないセルの変更ができないため、困っています。 どうぞ、よろしくお願いいたします。 Excel VBAでセルの整列 Excel VBAでセルの整列 現在、VBAを勉強中の者です。 最近、勉強を始めたばかりですが、この前何とかVBAを用いてセルの塗り潰しが出来る様になりました。 そこで、今度は色が塗り潰されたセルを添付した画像のように整列したいと考えていますが、どんな風にすれば良いのか見当がつきません。 誰か、教えてください。 やりたい事は、A列に結合されているセルがいくつか存在していて、B列を挟んでC列にA列に関連する文字が入力されています。 そして、C列には予めセルが塗り潰されている箇所がありますが、今回、C列において塗り潰されているセルのみを、結合されているセルの最終行に移動させたいのです。 EXCEL EXCELで、 (1) 例えばA1に『著作権』、B2、B3、B4にその言葉についての 『説明』が入力されていたとします。 B2~B4 の セルの結合を行うと、 『選択範囲には複数のデータ値があります。 1つのセルとして結合すると選択したセル範囲にある最も左上端にあ るデータのみが保持されます(空白セルは無視されます)』 とコメントが出て 結合したセルには B2に入力した内容しか残らなくなってしまいま す。 こうなると『説明』の部分をすべて打ち直し、または他のセルにうつ してから貼り付け作業を行わなくてはなりません。 なんとか良い方法はありませんか? (2)またA列には用語を、B列以降はその用語の説明をどんどん入れて いき、最後にA列のデータ並べ替え(五十音順)を行いたいのです が、A列の並べ替えをおこなっても、用語説明が数行にわたる為、 B列以降を一緒に並べかえすることができません。 (1)だけでも良いので回答いただければとおもいます。 バラバラのセルのデータをすべて1行にまとめたい Excelで添付画像の矢印の先のように、バラバラのセルのデータをすべて1行にまとめたいです。 A列の「医療機関名」ごとにデータを1行に集約させたい、というような意味合いになります。 添付画像の通り、列と列では結合はされていないですが、行と行で結合されていたりいなかったりランダムに数百行あります。 何か楽に1行にまとめる方法はありますか? わかりづらい点がありましたら教えてください。 よろしくお願いします。 エクセルの条件付き書式を教えてください。 エクセルバージョンは2010です。 B列に"あ"を含む文字列、または”い”を含む文字列を入力している場合に、特定の行、たとえばA1:A100を塗りつぶす、やリ方がわからなくて試行錯誤しています。どなたか教えていただけないでしょうか? ExcelをAccess(VBA)にインポート お世話になります。 VBAによるExcelのインポートにつきましてご教授願います。 あるExcelファイルがあり、それをAccessにてインポート したいと考えております。 通常の表であれば、インポートすることは可能なのですが、 その表の上数行に表名や氏名があったり、見出しが2行に なっていて、片方が結合されるような状態です。 xxxx表 ←表名 氏名:○○○○ ←氏名 ←空白行 ←空白行 上期 下期 ←セルが結合されている No A B 金額 E F 金額←ここを見出しとして 1 インポートしたいところ 2 3 ※A~F及び金額にはそれぞれ値が入ってます。 このようなExcelファイルをVBAにてインポートすることは 可能でしょうか? それとも、ある程度はExcel上で加工する必要があるので しょうか? 宜しくお願い致します。 Excelで行見出しを日本語に出来ますか?(エクセル)2000 Excel2000で、縦長の表を作っています。 現在は一行目A列に「品名」、B列に「仕入れ価格」、C列に「売上」、D列に「純利」などの記入をして、 二行目以降に数値を入力しています。 (例えの話です) データが増えていくにつれ、縦にずーっと長くなってしまい、 そうすると、一行目がスクロールで見えなくなってしまうので、 例えば「仕入れ価格」がなに列だったかが分からなくなってしまいます。 そこで、行見出し(ABCDEと書いてあるところ)はスクロールせずに見えているわけですから、 そこに「売上」「利益」などと記入することがもし出来れば、こんな問題は起こらないのですが、 それは無理ですよね?(それが出来てしまうと、今度は座標を知りたい時に困るだろうし) あるいは、一行目に見出しを入力するのは今までと同じでも、 その一行目は行見出し同様に固定するというようなことは出来ないですか? みなさんどうしてるのでしょう? 長くなりすぎないようにシートを分ければいい場合はいいのですが、 一画面に表示出来る行は30行程度なので、 それ以上のデータになると結局スクロールで見出しが見えなくなります。 例えば30行ごとに「見出し」の行をいくつもつくるというのも、紙出力された表ではよく見かけますが、 まず面倒なのと、あとエクセルでそれをやってしまうと、 行全部をオートサムをした時に数字以外のデータが入っているのでエラーが出てしまいます。 (オートサムの範囲指定する時に、見出しのセルを除けばいいのでしょうが、それは面倒です) 行を色分けして、どの色がどの見出しに対応しているかを紙にメモしてモニタに貼っておくというのも考えましたが、 どうもスマートではありません。 絶対に何か方法があるはずだと思うのですが、 何かいい方法はありませんか? Excelについて。【再】 最初の状態です。D列を昇順→A列を昇順→BとC列だけにフィルターをかけなおし、C列を昇順にするんですが、A列が200の行だけを昇順にして、A列が300の行だけを昇順にする、という感じです。手動で選択範囲とフィルターをかけなおせば可能かもしれませんが、効率が悪いんです。 そもそもこれが正解なのかもわかりません。もっといい方法や手順があるかもしれません。。。 画像の添付の仕方がわからず、もう一度改めて質問させていただきます。宜しくお願い致します。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム Excel マクロ 条件によるセルの結合 テキストだとわかり辛いと思い、 画像を添付させていただきました。 3列の表があり、 A列に1~10までの数字(グループ名)を入力します。 これを、A列の数字が同じ場合、 B列とC列をセル結合したいのですが、 マクロで実現できるでしょうか? (行数は15行くらいあり毎日変わります) (最終行の次の行は空白です) (A列は結合してもしなくても問題ありません) Excel 2007 Windows10を使用しています。 おわかりの方がいらっしゃいましたら、 どうぞよろしくお願い致します。 エクセルVBAでCSVファイルから取り込みたいのですが・・・ CSVファイルのデータを取り込むコードを教えていただけないでしょうか。 「共有フォルダ」の中に「作業用.xls」と「090820.csv」があります。csvファイルは日によって名前が変わりますが、必ず一つしか入れないことにしています。 CSVファイルの1行目は見出しです。2行目以降がデータになっています。 A2からI列最終行を「作業用.xls」のsheet1のA6にコピー(取り込み)したいのですが、よろしくお願いします。 エクセル2003のVBAの範囲選択について質問です。 エクセル2003のVBAの範囲選択について質問です。 OSはXPです。 Range("B1:C" & Range("A" & Cells.Rows.Count).End(xlUp).Row).Select この意味は、B1セルからC()の範囲指定をするのに、()をA列の最終行を探すことによって指定する、ということだと思います。いろいろなサイトを参照させてもらいました。 この場合のA列の最終行を探す方法は、A列のデータが歯抜けの場合に正しく探せないので、一旦最終行を探し、そこから上に見に行って最初にデータが入っている行を探している、で正しいと思います。 私が知りたいのは、逆に歯抜けの場合はそこを最終行として指定する方法です。つまり、一旦最終行を探し、上に見に行くのではなく、A列の上から下に見に行って、空白(歯抜け)が見つかったところを最終行と指定する方法です。xlDownを使うのだろう、というところまでは判ったのですが、どうにもその先が判りません。 歯抜けの場合の方がマイナーなのか、この方法を具体例を記載しているサイトを見つけることができませんでした。 よろしくお願いいたします。 VBAコードを教えて下さい!! VBA初心者です。 皆様どうぞお力をお貸し下さい(>_<) A列「都道府県」・B列「市町村」・C列「番地」と分かれた列にそれぞれ入力してあります。 それをA~C列を結合して「都道府県市町村番地」と表示させたい。 データは2行目~500行目くらいまで入っています。 最初の1行(A2~C2)だけは出来たのですが、 それ以降データの終わりまではどうすれば良いのか分かりません。 どうぞ宜しくお願い致します。 エクセルで縦横参照で見出し行のデータを抽出したい 一般的なINDEX、MATCH関数の組合せではどうしてもわからずお知恵を拝借致したくお願い致します。 添付画像でA列とB2:K11までの範囲を検索して、A列のFを右に見てK7のFと交叉して見出し行の水をB15セルに出力したいのですが、どのようにしたら良いでしょうか? 出来ましたら関数でお願いしたいのですが。 よろしくお願い申し上げます。 エクセル VBAで色塗りについて教えてください VBA初心者です。 例えばB列2行目から下に(1)~(7)までの番号を不規則に入力することにより F列11~17行目に1セルずつ右へ色塗りをしていくにはどうプログラムをかいたらよいでしょうか? 番号によって、色塗りの行と色は決まっています。 (1)→11行目、黄色 (2)→12行目、青色 (3)→13行目、赤色 (4)→14行目、緑色 (5)→15行目、白色 (6)→16行目、黒色 (7)→17行目、茶色 また色塗りはF列からBD列までで終了です。 番号の入力回数の多いものが色塗りを早く終了できることになります。 VBAの本をみながら試行錯誤していましたが、うまくできず… どなたか詳しい方、お力を貸してください。 エクセルVBAで質問です 下のような表を作っています。 A列に日付がある限り、B、C、D、E列それぞれの列に対して、 3行目以降のデータが検索値と同じであれば、そのひとつ上の行の 値をG、H、I、J列にそれぞれ上から順に入れていきたいのですが、 どのようになるでしょうか。 A1 月日 B1 検索値1・・・B3以降データ C1 検索値2・・・C3以降データ D1 検索値3・・・D3以降データ E1 検索値4・・・E3以降データ G2以降に検索値1で調べた値 H2以降に検索値2で調べた値 I2以降に検索値3で調べた値 J2以降に検索値4で調べた値 例えば、B1の検索値が1であり、B10に1があったとします。 この場合、ひとつ上のB9の値をG2に来るようにしたいのです。 説明下手ですが教えていただけないでしょうか。 エクセル2013 マクロをご教示ください Sheet1 4行目に見出し。 5行目A列からU列までデータが入力されています。 中には空白セルもあります。 1行目から4行目迄はロックされています。 5行目以降の、あるセルをアクティブにすると、 該当行のC列からS列迄を Sheet2のA列を先頭に 5行目にコピペするには どうしたら宜しいでしょうか? Sheet2も4行目が見出しです。 Sheet1でのアクティブセルは 複数の場合もあります。 ただし、同じ行でセルを複数アクティブにしても Sheet2への貼り付けは1行とします。 よろしくお願いします。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
お礼、お返事遅くなりまして申し訳ありません。 自分は、以下のように使用させていただいています。 ' A列を見て、行を追加 Range("A1").Select Dim i4 For i4 = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 i4 = Cells(i4, 1).MergeArea.Row Range(Cells(i4, 1), Cells(i4, 8)).Insert Shift:=xlDown Range(Cells(i4, 1), Cells(i4, 8)).Merge X% = Worksheets("印刷用").Columns(1).SpecialCells(xlLastCell).Row Worksheets("印刷用").Columns(5).SpecialCells(xlBlanks).Interior.Color = RGB(204, 255, 204) Next i4 ' ここまで ※実際はA列からH列まであったのでRange(Cells(i4, 1), Cells(i4, 8))にさせていただきました。 そして、データ最終行まで取得しBlankCell(空白セル)に色を付けてます。参考になるか判りませんが載せときます。 mt2008様、ありがとうございました。