[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『2行にある文字を1行にまとめたい』(KK)
簡単な操作かもしれませんが、ネットで随分調べてもわかりません。
A1セル あいう
A2セル かきく
A3セル さしす
とはいっている文字を
A1セルに あいうかきくさしす
とまとめたいのです。例えばBセルにまるめるのであれば
=A1&A2&A3 か関数でできますし、参考例もたくさんあります。
でも今文字がはいっているA1セルにまとめる説明が見つかりません。
どうぞよろしくご教授ください。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
作業用セルを使わないのであればマクロになります。 サンプルです。
Sub test() Dim kitenrng As Range Dim mystr As String Set kitenrng = ActiveSheet.Range("A1") mystr = Join(WorksheetFunction.Transpose(kitenrng.Resize(3).Value), vbLf) kitenrng.Resize(3).Clear kitenrng.Value = mystr Set kitenrng = Nothing End Sub (カリーニン) 2015/04/17(金) 23:19
>例えばBセルにまるめるのであれば >=A1&A2&A3 か関数でできますし、参考例もたくさんあります。
B1セルに式で出して、それを元のセルに値で貼り付け、としたら わざわざマクロを組むまでもありません。 (カリーニン) 2015/04/17(金) 23:21
早速のご教授ありがとうございました。
明日までに400ほど作業でまとめなくてはならず困窮していました。
マクロは始めたばかりですが、そのままコピーさせていただいて実行
したらうまくいきました。
>B1セルに式で出して、それを元のセルに値で貼り付け
は(Bセルではありませんが)自分でマクロにしたのですが、うまく
行きませんでした。この作業が終わったらもう一度試してみます。
本当にありがとうございました。
(KK) 2015/04/17(金) 23:33
>Set kitenrng = ActiveSheet.Range("A1")
このコードはA1セルが基点となってますが、
Set kitenrng = ActiveCell
としたらアクティブセルが基点となります。
また、ループ処理で行うともっと効率化できます。 (カリーニン) 2015/04/17(金) 23:41
たとえば、Ctrlキーを押しながら基点セルをクリックしていって選択した後 で一括で行うなら↓のような感じになります。
※最初は絶対にサンプルデータで行うか、バックアップを取った後実行してみてください。
Sub test2() Dim c As Range Dim kitenrng As Range Dim mystr As String For Each c In Selection Set kitenrng = c mystr = Join(WorksheetFunction.Transpose(kitenrng.Resize(3).Value), vbLf) kitenrng.Resize(3).Clear kitenrng.Value = mystr Set kitenrng = Nothing Next c End Sub (カリーニン) 2015/04/17(金) 23:48
引き続きのご教授ありがとうございます。
昨日はおかげさまでなんとか作業がこなせました。
最初お教えいただいたマクロが実行できたので、
Set kitenrng = ActiveSheet.Range("A1")を
Set kitenrng = ActiveCell
になおして(これはなんとか理解してました)実行。
ただ改行でスペースが入るので、それは
Dim rngTarget As Range
On Error Resume Next
Set rngTarget = Application.InputBox( _
"範囲を選択してください", Type:=8) On Error GoTo 0 If rngTarget Is Nothing Then Exit Sub rngTarget.Replace vbLf, "", xlPart
のマクロを使いました。悲しいかなまだ初心者ゆえ
行をつなげる+改行削除をつなげることはできず
それでも何百もカット&ペーストすること思えば
格段の速さです。
ネットとはいえ、見ず知らずの方にご丁寧にご指導
いただけたこと感謝もうしあげます。
大量の処理があるときは、マクロはとても重宝します。
自由にマクロ使いこなせる方が本当にうらやましいです。
週末はお教えいただいたループや一括処理をためして
マイマクロにストックします。
重ねてお礼申し上げます。ありがとうございました。
(KK) 2015/04/18(土) 17:14
>mystr = Join(WorksheetFunction.Transpose(kitenrng.Resize(3).Value), vbLf)
VbLf がセル内改行になります。
mystr = Join(WorksheetFunction.Transpose(kitenrng.Resize(3).Value), "")
とすれば改行なしで連結します。 (カリーニン) 2015/04/18(土) 20:53
度々のご教授ありがとうございます。
VbLf と "" がわかってないなど情けなくなります。
一括マクロはあてはめて作ってみました。上手く動作しました! うれし。
私の作業全体としては、集計ソフトを加工(ここで行をまとめる操作が出ました)
単純集計とクロス集計を作成、さらに円グラフ化するというものです。
一括やループは必須です。
マクロは個々人の作業内容で果てしなくあると思います。
大変ですが、時にはご助力もいただき、これからも少しづつ上達できるようがんばります。
ありがとうございました。
(KK) 2015/04/19(日) 20:55
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.