- ベストアンサー
エクセルで複数セルの文字を一回で行ごとに結合したい
文字を消さずにセルを結合する方法は http://okwave.jp/qa2246502.html こちらの質問の回答を見てできるようになりました。 しかし、同じ結合作業を数行にわたってしたいと思い使ってみたら大きな1つのセルになってしまいました。 (例えばA1~A5とB1~B5を選択してマクロを使ったらA1にすべての内容が入っている状態) 行ごとの結合になるように1回でできる方法はありませんでしょうか。 量が多いので1行ずつ作業するのが大変だなぁと思ったので質問してみました。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 選択した範囲に対して行ごとにセル結合したいですよね。 だとしたら、以下のマクロで実行してください。 これなら、行や列番号の入力は不要です。 Sub test2() Dim r As Long Dim c As Long r = Selection.Rows.Count c = Selection.Columns.Count Selection.Resize(1, c).Select For i = 1 To r Call CellsMerge_KeepValues Selection.Offset(1, 0).Resize(1, c).Select Next i Selection.Offset(-r, 0).Select End Sub
その他の回答 (2)
- ka_na_de
- ベストアンサー率56% (162/286)
セキュリティーレベルが「高」になっているのだと思います。 「中」または「低」に変更する必要があります。 「中」にした場合は、その都度マクロを有効にするか聞いてきますので、信頼できるファイルであれば「有効」にしてください。 全く関係ないソフトのHPに詳しい設定方法が紹介されていますので 参考にしてください。 参考>http://e-kyu.com/kyu18/security/security.html
お礼
できました! ドラッグで自由に選択して即結合できるようになりました。 これ以上の自由度はないですね。 素晴らしいです。 本当にありがとうございました!^^
- ka_na_de
- ベストアンサー率56% (162/286)
KenKen_SP さんの関数を行ごとに繰り返し呼び出して実行させれば 良いと思います。 ただし、 実行確認のメッセージがでますので、これを避けるには ' 実行確認 の次の行の先頭に'(アポストロフィー)を加えて、コメント化してください。 オリジナルのコードを修正することには抵抗がありますが・・・ 以下はA列~D列のセル結合を1行~10行繰り返す例です。 Sub test() Dim i As Long For i = 1 To 10 Range(Cells(i, "A"), Cells(i, "D")).Select Call CellsMerge_KeepValues Next i End Sub
お礼
ありがとうございます。 KenKen_SPさんのマクロを使っています。(KenKen_SPさん助かりました!) マクロを使うこと自体初めてで、例にあげて頂いたものをすぐ活用できません・・・^^; ちょっとにらめっこしてみます。
補足
*お礼を書いた後に書きました* 凄いです!できました!一瞬で100行以上の作業が終わりました!! Callの所でわかりました。別にマクロを作って結合マクロを呼び出すんですね。 感動しました。ありがとうございました!
補足
再度ありがとうございます! 早速やってみようと閉じてあったファイルを開けてマクロを書き換えて実行したところ、署名をするかセキュリティレベルを変更しないといけないとメッセージが出てしまって先に進めませんでした。 今日は遅いので明日考えたいと思います。