![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?a65a0e2)
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も見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
もし10億円当たったら何に使いますか?
みなさんの10億円プランが知りたいです!
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
集中するためにやっていること
家で仕事をしているのですが、布団をはじめ誘惑だらけでなかなか集中できません。
-
VBA 1次元配列を2次元に追加する
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
特定の色のついたセルを削除
-
Excel UserForm の表示位置
-
【Excel VBA】一番右端セルまで...
-
VBA:日付を配列に入れ別セルに...
-
Excelで空白セル直前のセルデー...
-
【Excel VBA】マクロで書き込ん...
-
【VBA】【ユーザーフォーム_Lis...
-
CSVファイルを読み込んだらセル...
-
C# DataGridViewで複数選択した...
-
CellEnterイベント仕様について
-
エクセル、マクロで番号を読込...
-
EXCEL VBA 文中の書式ごと複写...
-
エクセル VBA ボタンをクリック...
-
【ExcelVBA】値を変更しながら...
-
Excel 範囲指定スクショについ...
-
データのある範囲を選択するVBA...
-
【VBA】写真の貼り付けコードが...
-
文字数に応じてfont-sizeを自動...
-
DataGridViewでグリッド内に線...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAマクロ実行時エラーの修正に...
-
Excelで空白セル直前のセルデー...
-
エクセルVBA 配列からセルに「...
-
特定の色のついたセルを削除
-
【Excel VBA】一番右端セルまで...
-
【VBA】【ユーザーフォーム_Lis...
-
EXCEL VBA 文中の書式ごと複写...
-
VBA:日付を配列に入れ別セルに...
-
C# DataGridViewで複数選択した...
-
Excel UserForm の表示位置
-
入力規則のリスト選択
-
Excel 範囲指定スクショについ...
-
エクセル、マクロで番号を読込...
-
DataGridViewでグリッド内に線...
-
Excel VBAで特定の範囲の空白セ...
-
CellEnterイベント仕様について
-
Excel VBAでCheckboxの名前を変...
-
【ExcelVBA】値を変更しながら...
-
データグリッドビューの結合セ...
-
下記のマクロの説明(意味)を...
おすすめ情報