- ベストアンサー
「★」を境に文字を分割し隣のセルに転記するのをvbaで行ないたい
merlionXXの回答
No3です。 横方向を縦方向に変えたいというのでわざわざTransposeをかませのですがそうでないなら、 Range("A1").Resize(UBound(ar) + 1).Value = Application.Transpose(ar) の部分を Range("A1").Resize(1, UBound(ar) + 1).Value = ar に変えればOKです。 Resizeの範囲を変え、Transposeをはずすだけです。
関連するQ&A
- エクセルマクロで特定の文字を探して隣のセルの色を変える
エクセルに入力されている特定の文字を探し出して隣のセルに色をつけたいと考えています。 検索の対象となるセルは全てのシートのB列です。 検索する文字は色々な英数字の組み合わせの中に含まれています。 A B 1 10 ABC000012 2 20 AAC000013 3 30 ACC000014 上記のような値が入力されている状態で、B列の"ABC"か"AAC"の何れかが入力されているセルの隣のA列のセルの色を変えたいです。 この場合はA1とA2のセルの色が変わるというイメージです。 VBAを使って処理したいのですが、どなたかご教授頂けないでしょうか。宜しくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- Excel マクロ VBA セル内で改行された文字列の分割
はじめまして。 ExcelのVBA初心者で、ちょっと困っています。 (例) (1) セルA1に以下のような改行された文字列が入力されています。 【セルA1】 a aa aaa b bb bbb (2) セルA1内の文字列を3行毎に分割し、セルA2以降に表示させたい。 【セルA2】 a aa aaa 【セルA3】 b bb bbb ※ 今回の例ではセルA1に6行しかありませんが、実際に行数は決まっていません。 そこで以下のようなVBAを見よう見まねで作り、1行毎の分割はうまくいったのですが、『3行毎に分割』ができません。 Sub 分割() Dim A, B, C A = Split(Range("A1"), Chr(10)) B = 0 For Each C In A B = B + 1 Range("A2").Offset(B - 1, 0).Value = C Next End Sub ご教授いただけると助かります。 よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- VBAの文字列分割
A1セルにAAA VVV EEE TTT YYYYY UUUUUU WW RRRR WW TTTT という文字列が入力されています。 VBAによって、B1セルから順序右へ空白ごとに分割した文字列を代入することができますか? できれば、空白の数に制限なくできるものを所望しています。 もし不可能であれば最低でも10個までのものだと助かります
- ベストアンサー
- Visual Basic
- 急!!Excel VBA 転記マクロを教えて下さい
Excel VBA超初心者です、 急ぎ作らなければならない資料があり、ご助力願います。 次の様な転記するアクションをコマンドボタンに設定したいです。 Sheet1の列A(先頭セルA2)に入力したデータを、 追加した(入力間違い等を除き、保存した)データ分だけ Sheet2の列B(先頭セルB3)の最終行から転記させていく。 列Aに入力したデータは、並び替えをするので (この分は、今回のVBAに含みません。入力・転記後、Sheet1で普通に並び替えをします。) 列Aと列Bのデータの順番が異なる。 以上です。 どうぞ宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルのセルを分割したい!
エクセルのセルをスペースの前後で分割したいのですが、方法を教えてください。 A1にあいうえお かきくけこ と入力しているとして2つのセルに分けたいのですが・・・。 セルによって文字数が違うのでスペースを境にして分割したいのです。 どうぞよろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- エクセルVBAでセル選択
エクセル2000でリストを作成し、VBAで編集しようとしています。 A列に入力されているコードの先頭に「’」をつけて文字列とするための関数をB2のセルからA列のデータが入力されている最後のセルの隣までコピーしたいと思っています。 A列の最終セルを取得するVBAは分かったのですが、その値をB列の選択範囲として使用する方法がわかりません。 エクセルVBAは全くの初心者です。 どなたか教えてください!
- ベストアンサー
- オフィス系ソフト
- エクセルのセル内数字の分割転記
またしてもド素人の質問で恐縮ですが、 ある列に桁数の異なる数値が縦に並んで記載されているとき、 セルと同一列の別のセルに、数値を一文字ずつ分割して、下記の様に表示させたいのです。 (G列の数字はすべて右揃えのつもりです) A B C D E F G 1 5 4 3 2 1 54321 2 1 2 3 123 3 2 2 22 4 6 5 2 652 5 9 9 そこで、A1には、=LEFT(RIGHT($G1,5))、B1には=LEFT(RIGHT($G1,4))、というように、関数を入れておき、1列目はA1からE1まで無事表示できました。 しかし、2列目以降にA1からE1の各セルの式を転記しますと、 1 5 4 3 2 1 54321 2 1 1 1 2 3 123 3 2 2 2 2 2 22 4 6 6 6 5 2 652 5 9 9 9 9 9 9 と、なってしまいました。空白にしたいところに指定セルのトップの数字が入ってしまうんです。指定したセルの数字の桁数よりも大きな部分は空白にしたいのですが、 「もしも何かの条件に合わねば空欄に」というようなことができれば幸いなんですが、どのようにすればいいのかをお教えください。
- ベストアンサー
- Excel(エクセル)
- VBA:日付を配列に入れ別セルに転記するとデータ型が変わる
データを別シートに転記するVBAコードを書いていて気付きました。 日付データをバリアント型の配列に入れて、再度書き出すと 21/2/2005 のように表示され、さらに日付ではなく、文字列になってしまいました。 具体的には下記のような内容です。Sheet1 の A1:A10 に 2005/2/21 のような日付が入力されています。 1. セル範囲のデータをバリアント型の配列に格納 2. 1.を別のセルへ一括転記を行う Sub TestMacro() Dim Buf As Variant With Sheets("Sheet1").Range("A1:A10") Buf = .Value '・・・(1) .Offset(0, 3) = Buf '・・・(2) End With End Sub ウォッチ式で変数を確認すると(1)および(2)の時点では #05/02/21# Variant/Date型 と正しく日付として扱われているようです。しかし、転記されたセルを見てみると、「文字列で 21/2/2005 」となっているのです。 2005/2/21 が返されるものと思うのですが、なぜ、このような現象が起こるのでしょうか?何かとんでもない勘違いをしているのでしょうか? テスト環境は Win98SE + EXCEL2002 です。よろしくお願いします。
- ベストアンサー
- Visual Basic
- VBAで複数列セルに入力されている文字を一行に
こんにちは。VBAにて下記イメージの複数列セルに入力されている文字を一行に変換しメモに出力すると同時に出力された一行の文字列をコピーした状態にしたいです。セルに記載された文字は「,」カンマで区切った状態で範囲はA3セルからA50位となります。また、セルが結合されていたり空白が存在したり様々です。大変申し訳御座いませんがご教授宜しくお願いします。 あああ → あああ,いいい,ううう,えええ,おおお・・・ いいい ううう えええ おおお ・ ・ ・
- 締切済み
- Excel(エクセル)
- 転記 マクロ VBA
VBA初心者です。今シートが2つあり、一つは「明細」シート、もう一つは「入力」シートです。明細シートは3万行程あり、列はA~Sまであります。入力シートも全く同じ列並びでA~Sまであります。共にA列が伝票No.という項目になっており、今このA列にどんどん伝票No.を入力していき、最後に転記ボタンを押して残りのB~S列を明細シートから一発転記できるマクロができないかと考えております。どなたか詳しい方教えて頂けないでしょうか。宜しくお願い致します。
- ベストアンサー
- Visual Basic
お礼
再度ご回答ありがとうございます。 大変参考になりました!!!