
[ããã°ã©ãã³ã°: ExcelVBA] Transpose颿°ã§å ¥ãæ¿ããããèŠçŽ æ°ãæ€èšŒããŠã¿ã
ããç²ãæ§ã§ã ( 'Ï')ã
ãVBAã§ã¯ã2次å
é
åã®äžèº«ãè¡æ¹åãåæ¹åã®å
¥ãæ¿ãããããšãã«Transpose颿°ã䟿å©ã§ãã
ãTranspose颿°ã¯ãã»ã«ãã³ããŒããŠè²Œãä»ãããéã«äœ¿çšãã
âè¡/åã®å
¥ãæ¿ã (T)â ãVBAã§è¡ãããã®é¢æ°ã§ãã
ããã®é¢æ°ã¯ã·ãŒãäžã«åºåãããšãã ãã§ãªãã2次å
é
åã«å¯ŸããŠãæå¹ã§ãã
ããããããã®Transpose颿°ã«ã€ããŠã¯æèšãããŠããªãå¶éãããããã§ãããããªãšââè¡Ãâåã«å¯ŸããŠæå¹âãšãâ2次å
é
åã®èŠçŽ æ°ãâåãŸã§ã¯å
¥ãæ¿ããã§ããâãšã¯èšè¿°ãç¡ãããã§ãã
ãããã§ãç¬èªã«ã©ãããããŸã§äœ¿ããã®ããæ€èšŒããŠã¿ãŸããã
ïŒ æ€èšŒç°å¢ ïŒ
ïŒ æ€èšŒçšã®ã³ãŒã ïŒ
Sub WF_Transpose_test()
'===== 倿°å®£èš =======================================================
Dim i As Long, j As Long
Dim varSample As Variant
Dim lngAryYCnt As Long, lngAryXCnt As Long
Dim lngAryCnt As Long
'====================================================================
'----- é
åã®èŠçŽ æ°ãæå®
lngAryYCnt = 100 'è¡ã®èŠçŽ æ°ãæå®
lngAryXCnt = 290800 'åã®èŠçŽ æ°ãæå®
lngAryCnt = lngAryYCnt * lngAryXCnt 'èŠçŽ æ°ã®åèš
'----- é
åãå宣èš
ReDim varSample(1 To lngAryYCnt, 1 To lngAryXCnt)
'----- 詊ã
On Error GoTo ErrLine
varAft = WorksheetFunction.Transpose(varSample)
ErrLine:
If Err.Number = 0 Then
Debug.Print _
"èŠçŽ æ°ïŒ" & Format(lngAryCnt, "#,##0") _
& Format(lngAryYCnt, "(#,##0") & "*" & Format(lngAryXCnt, "#,##0)") _
& vbTab & "æ£åžžçµäº"
Else
Debug.Print _
"èŠçŽ æ°ïŒ" & Format(lngAryCnt, "#,##0") _
& Format(lngAryYCnt, "(#,##0") & "*" & Format(lngAryXCnt, "#,##0)") _
& vbTab & Err.Number & vbTab & Err.Description
Err.Clear
End If
End Sub
ãç°¡åã«äžèšã®èª¬æããããšãlngAryYCnt ã«é
åã®è¡ã«ãããèŠçŽ æ°ãæå®ããlngAryXCnt ã«åã«ãããèŠçŽ æ°ãæå®ããŸãã
ãé
åã«å
¥ããå€ã®å€§ããã«ãã£ãŠçµæã®ãã©ãããåºãªãããã«é
åã®åèŠçŽ ã®äžã«ã¯äœã代å
¥ããŠããŸããã
ããããŠããã®ãŸãŸã³ãŒããå®è¡ãããšã€ããã£ãšã€ããŠã£ã³ããŠã«é
åã®èŠçŽ æ°åèš(è¡èŠçŽ æ°ÃåèŠçŽ æ°)ãšâæ£åžžçµäºâ ãŸã㯠ãšã©ãŒçªå·ãšãšã©ãŒã¡ãã»ãŒãžãåºåãããŸãã
ïŒ å®è¡çµæ ïŒ
ãå®è¡çµæã¯ã以äžã®éãã§ãã
èŠçŽ æ°ïŒ27,000,000(1,000*27,000) æ£åžžçµäº
èŠçŽ æ°ïŒ28,000,000(1,000*28,000) æ£åžžçµäº
èŠçŽ æ°ïŒ29,000,000(1,000*29,000) æ£åžžçµäº
èŠçŽ æ°ïŒ30,000,000(1,000*30,000) 1004 WorksheetFunction ã¯ã©ã¹ã® Transpose ããããã£ãååŸã§ããŸããã
èŠçŽ æ°ïŒ29,000,000(1,000*29,000) æ£åžžçµäº
èŠçŽ æ°ïŒ30,000,000(1,000*30,000) 1004 WorksheetFunction ã¯ã©ã¹ã® Transpose ããããã£ãååŸã§ããŸããã
èŠçŽ æ°ïŒ29,500,000(1,000*29,500) 1004 WorksheetFunction ã¯ã©ã¹ã® Transpose ããããã£ãååŸã§ããŸããã
èŠçŽ æ°ïŒ29,800,000(1,000*29,800) 1004 WorksheetFunction ã¯ã©ã¹ã® Transpose ããããã£ãååŸã§ããŸããã
èŠçŽ æ°ïŒ29,300,000(1,000*29,300) 1004 WorksheetFunction ã¯ã©ã¹ã® Transpose ããããã£ãååŸã§ããŸããã
èŠçŽ æ°ïŒ29,000,000(1,000*29,000) æ£åžžçµäº
èŠçŽ æ°ïŒ29,200,000(1,000*29,200) 1004 WorksheetFunction ã¯ã©ã¹ã® Transpose ããããã£ãååŸã§ããŸããã
èŠçŽ æ°ïŒ29,100,000(1,000*29,100) 1004 WorksheetFunction ã¯ã©ã¹ã® Transpose ããããã£ãååŸã§ããŸããã
èŠçŽ æ°ïŒ29,050,000(1,000*29,050) æ£åžžçµäº
èŠçŽ æ°ïŒ29,080,000(1,000*29,080) 1004 WorksheetFunction ã¯ã©ã¹ã® Transpose ããããã£ãååŸã§ããŸããã
èŠçŽ æ°ïŒ29,070,000(1,000*29,070) æ£åžžçµäº
èŠçŽ æ°ïŒ29,075,000(1,000*29,075) æ£åžžçµäº
èŠçŽ æ°ïŒ29,078,000(1,000*29,078) æ£åžžçµäº
èŠçŽ æ°ïŒ29,079,000(1,000*29,079) æ£åžžçµäº
èŠçŽ æ°ïŒ29,080,000(1,000*29,080) 1004 WorksheetFunction ã¯ã©ã¹ã® Transpose ããããã£ãååŸã§ããŸããã
èŠçŽ æ°ïŒ29,079,500(100*290,795) æ£åžžçµäº
èŠçŽ æ°ïŒ29,079,800(100*290,798) æ£åžžçµäº
èŠçŽ æ°ïŒ29,079,900(100*290,799) æ£åžžçµäº
èŠçŽ æ°ïŒ29,080,000(100*290,800) æ£åžžçµäº
èŠçŽ æ°ïŒ29,080,000(1,000*29,080) 1004 WorksheetFunction ã¯ã©ã¹ã® Transpose ããããã£ãååŸã§ããŸããã
èŠçŽ æ°ïŒ29,080,000(1,000*29,080) 1004 WorksheetFunction ã¯ã©ã¹ã® Transpose ããããã£ãååŸã§ããŸããã
èŠçŽ æ°ïŒ29,080,000(29,080*1,000) 1004 WorksheetFunction ã¯ã©ã¹ã® Transpose ããããã£ãååŸã§ããŸããã
èŠçŽ æ°ïŒ29,080,000(290,800*100) 1004 WorksheetFunction ã¯ã©ã¹ã® Transpose ããããã£ãååŸã§ããŸããã
èŠçŽ æ°ïŒ29,080,000(100*290,800) æ£åžžçµäº
ãå³å¯ã«ãšã©ãŒã«ãªããããªããªããã®éŸå€ãšãªãèŠçŽ æ°ã1ã€ãã€æ¢ããããã§ã¯ãããŸããã
ããã ãçµæãšããŠã¯è¡Ãåã®èŠçŽ æ°ã 29,080,000åãšãªããããã§ãšã©ãŒãçºçããŠããŸãã
ãããããåºåãããçµæãäžããèŠãŠãããš èŠçŽ æ°ïŒ29,080,000å ã§ã
è¡1,000 à å:29,080 ã®å Žåãš è¡:100 à å:290,800 ã®å Žåã§ã¯ãšã©ãŒãçºçãããã©ãããéãããã§ãã
ãããã« è¡:100 à å290,800 ã§ã¯ãšã©ãŒã«ãªããŸããã§ãããã
è¡:290,800 à å:100 ã§ã¯ãšã©ãŒã«ãªã£ãŠããŸãã
ãå ã¿ã«äžãã³ãŒãå®è¡äžã®ãšã©ãŒã«ãªãçŽåã®ã¿ã¹ã¯ãããŒãžã£ãŒã§ãã
ãäžæçã«ã§ã¯ãããŸãããExcelã®ããã»ã¹ã§ã¡ã¢ãªã2,504MB䜿çšãããŠããŸãã
ãExcelãã¡ã€ã«ãéããŠããã ãã ãš60æ°MBã ã£ãã®ã§ã2,400MBååŸãã³ãŒãã®å®è¡ã«äœ¿çšãããŠããããã§ããã
ãããšãç»åã¯æ®ããŠããŸããã§ããããäžã§èšããå®è¡çµæã®åã«2ïŒ3床ãã¹ããããŠããŸãããããšã©ãŒãçºçããèŠçŽ æ°ãäžæŠãã¡ã€ã«ãéããŠããå床å®è¡ããæã«ãšã©ãŒãçºçããã«æ£åžžçµäºããããšããããŸããã
ããã®ããšãèžãŸããã¿ã¹ã¯ãããŒãžã£ã§äœ¿çšãããŠããã¡ã¢ãªãèŠãŠãããšèŠçŽ æ°ãåãŸã§Transpose颿°ã§å ¥ãæ¿ããã§ãããšããããã¡ã¢ãªäœ¿çšéãšã®å Œãåããªã®ã§ã¯ãªãããšæãããŸãã
ããŸãããã®æ€èšŒã§ã¯é
åã®åèŠçŽ ã«ã¯å€ã代å
¥ããŠããŸãããã§ãã®ã§ãåèŠçŽ ã®å€ã¯Emptyã®ãŸãŸã«ãªã£ãŠããŸãã
ããã®Transpose颿°ã§ã¯ã䜿çšããŠããPCã®æ§èœãExcelã64bitçã§ãå
¥ãæ¿ãã§ããèŠçŽ æ°ã®äžéãå€ãã£ãŠãããã§ãã
ïŒ çµè« ïŒ
ã»PCã®æ§èœããã®æã®äœ¿çšã¡ã¢ãªã«ãã
ã»é
åå
ã«ã©ããããã®æ
å ±é(å€)ããããã§å€ãã
ã»Excelã64bitçã ãšExcelã§äœ¿çšã§ããã¡ã¢ãªå®¹éãå€ããã®ã§ãããã§ãå€ãããšæããã
ãæåŸãŸã§ãèšäºãèªãã§ããã ãããããšãããããŸããïŒ
ãå®ãããã° âã¹ãâ ãããŠãããããšåã®ã¢ãããŒã·ã§ã³ãäžããããŸã次ã®èšäºã«ã€ãªããããšãã§ããŸãã
ãã©ãããããããé¡ãããŸãïŒ



