
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
5x20の配列でやるなら
Dim arSrc as Variant, arDes as Variant
dim x as integer, y as integer
arSrc = Range("A1:A100")
' 配列を用意する
arDes = Range("B1:U5")
for y = 1 to 5
for x = 1 to 5
arDes(x,y) = arSrc( x + ( y - 1 ) * 5 )
Next
Next
Range("B1:U5").Value = arDes
といった具合でしょう
Dim BU( 1 to 5, 1 to 20 ) as Byte
などとしてしまうと Range(範囲).Value = BU といった記述ができません
VBEで Dim BU( 1 to 5, 1 to 20 ) as Byte とした場合と
Dim BUV as Variant
BUV = Range("B1:U5").Value
とした場合の違いを確認してみてください
すばやい回答ありがとうございます。
私には少し難し過ぎました。
何となくわかりそうな気はするのですが…。
時間を見て解析して見たいと思います。
色々な方法があるのですね。
本当にありがとうございました。
すごく参考になりました。
No.3
- 回答日時:
Rangeオブジェクト2つ使ってループを回せばいいでしょう
Sub Macro1()
dim oSrc as Range, oDes as Range
dim n as integer
Set oSrc = Range("A1:A5")
Set oDes = Range("B1:B5")
for n = 1 to 20
oDes.Value = oSrc.Value
' コピー元は5行下へ移動
Set oSec = oSrc.Offset( 5, 0 )
' コピー先は1列右に移動
Set oDes = oDes.Offset( 0, 1 )
next
End Sub
といった具合です
この回答への補足
分かり易い回答ありがとうございます。
試した所B列~U列まで同じ数字になってしまいましたので
少し、色々試させていただきました。
――――――――――――――――――――――――――――
Sub Macro1()
Dim i As Range, j As Range
Dim n As Integer
Set i = Range("A1:A5")
Set j = Range("B1:B5")
For n = 1 To 20
j.Value = i.Value
' コピー元は5行下へ移動
Set i = i.Offset(5, 0)
' コピー先は1列右に移動
Set j = j.Offset(0, 1)
Next
End Sub
――――――――――――――――――――――――――――
何とかクリア出来ました。本当にありがとうございます。
こんなに短いコード?で出来るなんて思っていませんでした。
それと大変恐縮なのですが、もし知っていましたら
もう一つ教えていただきたいことがあるのですが、
bytearray で宣言して5×20の二次元配列作って、配列に
数字を入れていく方法もあると聞いたことあるのですが、
さっぱりわかりません。
もし、良ければで結構です。
知っていましたら教えて頂けないでしょうか。
初心者なので、知る必要ないのかも知れませんが、
勉強中の身としては、どうしても気になって仕方ないのです。
本当にお答え下さってありがとうございます。
すごく助かりました。
本当にありがとうございました。
専門家なのですね。
コードも分かりやすくて、いろいろ応用できそうです。
初心者にとってはすごく助かりました。
補足付け足していますので、宜しければまた
補足部分見て下さると嬉しいです。
No.2
- 回答日時:
なんだか、課題っぽいけど。
セルB1はセルA1のひとつ右高さ同じ
セルB2はセルA1のひとつ右高さひとつ下
セルB3はセルA1のひとつ右高さふたつ下
セルB4はセルA1のひとつ右高さみっつ下
セルB5はセルA1のひとつ右高さよっつ下
これは、Range("A1").Offset(0,1) ~ Range("A1").Offset(4,1)です。
セルC1はセルA1のふたつ右高さ同じ
セルC2はセルA1のふたつ右高さひとつ下
セルC3はセルA1のふたつ右高さふたつ下
セルC4はセルA1のふたつ右高さみっつ下
セルC5はセルA1のふたつ右高さよっつ下
これは、Range("A1").Offset(0,2) ~ Range("A1").Offset(4,2)です。
1~100を基に「いくつ右側か」「いくつ下か(ゼロ含む)」を求めれば出来ますね?
(二次元だから添え字がふたつですよ)
Range("A1").Offset(列オフセット,行オフセット) = Range("A" & セル位置)
をループさせる。(セル位置を1~100と変化させる)
列オフセットと行オフセットは計算で求める。
列オフセット = (セル位置 - 1) mod 5 で 0~4が得られる。
行オフセット = ((セル位置 - 1) \ 5) + 1 で 1~20が得られる。
試験してないので間違った箇所があるかも。
コードはご自身で研究しながら記述してくださいね。
No.1
- 回答日時:
Sub test()
Dim i As Long, j As Long
Dim v, vv
With Worksheets("Sheet1") 'データのあるシート
v = .Range(.Range("A1"), .Cells(Rows.Count, 1).End(xlUp)).Value
ReDim vv(1 To 5, 1 To UBound(v, 1) / 5)
For i = 1 To UBound(v, 1) / 5
For j = 1 To 5
vv(j, i) = v((i - 1) * 5 + j, 1)
Next
Next
.Range("B1").Resize(UBound(vv, 1), UBound(vv, 2)).Value = vv
End With
End Sub
こうゆう事ですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCEL 行内のデータを2行に分けて、表を作り直したいのです。教えてください。 5 2023/06/25 14:00
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Excel(エクセル) エクセルでエラーを無視して一番左側のセルの値を返したい 2 2023/07/27 13:06
- Excel(エクセル) excel vbaの配列なんですが・・・ 1 2022/12/26 18:50
- Visual Basic(VBA) 別シートに順番で貼り付け 2 2023/04/13 19:53
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
- Visual Basic(VBA) ExcelVBAで質問です。離れた二次元配列を一つにしたい 4 2022/07/26 19:06
- Visual Basic(VBA) VBA横データを縦にしたいです 2 2023/08/08 19:38
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
【VBA】写真の貼り付けコードが...
-
【VBA】【ユーザーフォーム_Lis...
-
Excelで空白セル直前のセルデー...
-
VBA:日付を配列に入れ別セルに...
-
データグリッドビューの結合セ...
-
Excel UserForm の表示位置
-
DataGridViewのフォーカス遷移...
-
特定の色のついたセルを削除
-
C# DataGridViewで複数選択した...
-
【ExcelVBA】値を変更しながら...
-
【Excel VBA】一番右端セルまで...
-
EXCEL VBA 文中の書式ごと複写...
-
エクセルVBA 配列からセルに「...
-
Excel VBA 同じ処理を複数回行...
-
Excel 範囲指定スクショについ...
-
Rangeの範囲指定限界
-
EXCELのフォーム上でリアルタイ...
-
エクセル マクロ データの転記
-
エクセルVBA 郵便番号の書式判...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
Excel UserForm の表示位置
-
特定の色のついたセルを削除
-
Excelで空白セル直前のセルデー...
-
エクセルVBA 配列からセルに「...
-
【VBA】【ユーザーフォーム_Lis...
-
VBA:日付を配列に入れ別セルに...
-
複数指定セルの可視セルのみを...
-
C# DataGridViewで複数選択した...
-
【Excel VBA】マクロで書き込ん...
-
データグリッドビューの結合セ...
-
DataGridViewのフォーカス遷移...
-
Excel 範囲指定スクショについ...
-
【Excel VBA】一番右端セルまで...
-
EXCEL VBA 文中の書式ごと複写...
-
【VBA】写真の貼り付けコードが...
-
QRコード作成マクロについて
-
入力規則のリスト選択
-
CellEnterイベント仕様について
-
エクセル、マクロで番号を読込...
おすすめ情報