<文字列マクロについて>
皆さま お力を貸して下さい。
初心者で、何もわからず書いておりますがすみません。
下記の2つのマクロを教えて下さい。
?横に並んだ「ある行」に在るデータを「列」に変換し、
指定した数だけ並べる
あいうえお ←A1セルからE1まで5列(これは状況により変わる)
↓(マクロ実行:3行同じ数だけ並べるという指定)
あ →A1セルから下にひたすら、同じ文字が続き順に並ぶ
あ
あ
い
い
い
う
う →A1セルから下に並べる(3行は指定できれば別の数字にも変えたい
う
え
え
え
お
お
お
?規則的に並んだデータのまとまりをセットで移動する。
例だと5つの塊(これは変数とおきたい)
あ A a
い B b
う C c
え D d
お E e
↓(マクロ実行)
あ
い
う
え
お
A
B
C
D
E
・
・
・
・
a
b
c
d
e
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
≪1≫と≪2≫を纏めてみました。
元のデータ範囲内のセルを選択しておいてからマクロを実行してください。
Dim drng As Range
Dim n As Integer
Dim i As Long
If TypeName(Selection) <> "Range" Then Exit Sub
If ActiveCell = "" Then Exit Sub
n = 3
Set drng = ActiveCell.CurrentRegion
With drng
For i = 1 To .Columns.Count
If .Rows.Count = 1 Then
drng(1).Resize(n, 1).Offset((i - 1) * n).Value = drng(i).Value
Else
.Columns(1).Offset((i - 1) * .Rows.Count).Value = .Columns(i).Value
End If
Next i
End With
No.2
- 回答日時:
文字列で考えるという何かの課題のようでしたので
データ型をString と Variant の配列型でお答えします。
(1)
Public Sub ans1()
Dim str As String
Dim cnt As Long
Dim i As Long
Dim j As Long
str = Range("A1")
cnt = InputBox("何回繰り返す?")
For i = 1 To Len(str)
For j = 1 To cnt
Range("A2").Offset(cnt * (i - 1) + j) = Mid(str, i, 1)
Next j
Next i
End Sub
(2)
Public Sub ans2()
Dim str As Variant
Dim i As Long
For i = 0 To 4
str = Range("A1:A5").Offset(, i)
Range("A11:A15").Offset(i * 5) = str
Next
End Sub
(2)の str = Range("A1:A5").Offset(, i) は
str(1)~str(5) に A1~A5 の値を1つずつ入れてます。
何セットの文字があるのか不明でしたので5回行っています。
No.1
- 回答日時:
一例です。
≪1≫
Dim drng As Range
Dim i As Long
Set drng = Range("A1:E1")
For i = 1 To drng.Count
Range("A1:A3").Offset((i - 1) * 3).Value = drng(i).Value
Next i
≪2≫
Dim drng As Range
Dim i As Long
Set drng = Range("A1:E5")
With drng
For i = 1 To .Columns.Count
.Columns(1).Offset((i - 1) * .Rows.Count).Value = .Columns(i).Value
Next i
End With
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 16:07
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- Visual Basic(VBA) 先頭と末尾を指定して連続した数字を入力 1 2022/09/14 13:12
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/12/26 12:05
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) Excelのマクロで、特定のセルから順番に値を取得したい 5 2022/12/06 15:34
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/09 14:54
- Excel(エクセル) 【VBA】A列にある連続したデータの1番下に文字列を入力したい 1 2023/01/28 04:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
Excel 日付を比較したら、同じ...
-
Outlookを立ち上げたらGoogleロ...
-
outlookのメールが固まってしま...
-
会社PCのメールが更新されない
-
【スプレッドシート】指定の日...
-
ウィンドウィズ メモ帳で日付だ...
-
英数字のみ全角から半角に変換
-
Excelで空白以外の値がある列の...
-
Microsoft Formsの「個人情報や...
-
microsoft office
-
MicrosoftOfficeについて質問で...
-
マイクロソフト 一時使用コード...
-
outlookで宛先が異なるメールを...
-
Outlookでの時間指定送信機能に...
-
【スプレドシート】目標達成の...
-
自分の専門分野の仕事。初見で...
-
Microsoft Officeを2台目のPCに...
-
【Excel VBA】PDFを作成して,...
-
エクセルでXLOOKUP関数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
【スプレッドシート】指定の日...
-
英数字のみ全角から半角に変換
-
会社PCのメールが更新されない
-
マイクロソフト 一時使用コード...
-
Office 2021 Professional Plus...
-
エクセルで例えば、関数を使っ...
-
Microsoft Formsの「個人情報や...
-
1つのPCに「Excel 2010」「Exc...
-
エクセルで例えば、A1に㈱ベ...
-
理由を教えてください。
-
エクセルでXLOOKUP関数...
-
マイクロソフト オフィスについて
-
VLOOKUP関数について
-
teams設定教えて下さい。 ①ビデ...
-
Googleのスプレッドシートでシ...
-
【Excel VBA】PDFを作成して,...
-
Microsoft365で写真をアルバム...
-
Outlook で宛先が複数の場合の人数
-
Excel テーブル内の空白行の削除
おすすめ情報