Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11892 / 76734 ←次へ | 前へ→

【70371】Re:特殊な行列の入れ替え
発言  かみちゃん  - 11/11/7(月) 5:37 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> 特殊な行列の入れ替えをしたい

私は、以下のような感じでしています。

Sub Sample()
 SpecialTranspose Range("A1:A4"), Range("C1")
End Sub

Function SpecialTranspose(rng1 As Range, rng2 As Range, Optional bln As Boolean = False)
 Dim v As Variant
 Dim vv As Variant
 Dim x As Long, y As Long, xx As Long, yy As Long, yyy As Long
 
 v = rng1.Value
 xx = UBound(v, 2)
 yy = UBound(v, 1)
 ReDim vv(1 To xx, 1 To yy)
 For x = 1 To xx
  yyy = 0
  For y = yy To 1 Step -1
   yyy = yyy + 1
   vv(x, yyy) = v(y, x)
  Next
 Next

 If bln Then
  rng1.ClearContents
 End If
 rng2.Cells(1, 1).Resize(xx, yy).Value = vv
End Function

上記のうち、

SpecialTranspose Range("A1:A4"), Range("C1")

は、

Range("A1:A4") は、入れ替え元セル範囲
Range("C1") は、入れ替え先の左上のセル
※Range("A1"), True とすると、入れ替え元を消去して、同じ位置に入れ替えます。

いろいろ試してみてください。

7 hits

【70370】特殊な行列の入れ替え y.y 11/11/7(月) 0:00 質問
【70371】Re:特殊な行列の入れ替え かみちゃん 11/11/7(月) 5:37 発言
【70374】Re:特殊な行列の入れ替え UO3 11/11/7(月) 13:15 発言
【70375】Re:特殊な行列の入れ替え UO3 11/11/7(月) 13:32 発言
【70379】Re:特殊な行列の入れ替え ichinose 11/11/8(火) 7:04 発言
【70381】Re:特殊な行列の入れ替え UO3 11/11/8(火) 9:31 発言
【70382】Re:特殊な行列の入れ替え UO3 11/11/8(火) 9:38 発言
【70378】Re:特殊な行列の入れ替え y.y 11/11/7(月) 22:03 お礼
【70387】Re:特殊な行列の入れ替え panpan 11/11/11(金) 13:22 回答
【70380】Re:特殊な行列の入れ替え Yuki 11/11/8(火) 9:16 発言

11892 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free