Excel VBA質問箱 IV

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

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


68737 / 76734 ←次へ | 前へ→

【12526】それともユーザー定義関数にする?
発言  ichinose  - 04/4/6(火) 21:49 -

引用なし
パスワード
   別解です。と言ってもロジックはほとんど同じだけど・・・。

まず、以下のコードをユーザー定義関数として使います。
標準モジュールに

'========================================================
Function sort_sp(rng As Range)
  ReDim wk(1 To 1, 1 To rng.Count)
  Dim idx As Long
  Dim jdx As Long
  Dim temp As Variant
  jdx = 0
  For idx = 1 To rng.Count
   With rng
    temp = .Cells((idx - 1) Mod .Rows.Count + 1, (idx - 1) \ .Rows.Count + 1).Value
    End With
   If temp <> "" Then
     wk(1, jdx + 1) = temp
     jdx = jdx + 1
     End If
   Next
  For idx = jdx + 1 To UBound(wk())
   wk(idx) = ""
   Next
  sort_sp = wk()
End Function

***設定方法です。

・配列数式としてワークシートに関数を設定します。

・調査範囲は、(Sheet1)のセルA1〜D3だとします。

・Sheet2のセルA1〜L1を選択して下さい(理由は、4列*3行=調査範囲=12だから)

・選択した状態でセルA1がアクティブになっているはずです。

・そのまま、「=IF(sort_sp(Sheet1!A1:D3)="","",sort_sp(Sheet1!A1:D3))」という
 数式を入力します。

・尚、セルから抜けるときは、通常のEnterキーではなく、配列を使っていますから
 Ctrl+Shift+Enterキーで抜けて下さい。

これで設定終了です。

Sheet1のデータを追加してみて下さい。並び変えられているはずですが・・。

0 hits

【12496】空白でないセルの文字を抽出し詰めて表示したい。 さくら 04/4/6(火) 13:31 質問
【12517】Re:空白でないセルの文字を抽出し詰めて表... Jaka 04/4/6(火) 17:22 回答
【12523】Re:空白でないセルの文字を抽出し詰めて表... さくら 04/4/6(火) 19:50 質問
【12525】Re:空白でないセルの文字を抽出し詰めて表... ichinose 04/4/6(火) 20:57 回答
【12526】それともユーザー定義関数にする? ichinose 04/4/6(火) 21:49 発言
【12534】Re:それともユーザー定義関数にする?(訂... ichinose 04/4/7(水) 7:37 発言
【12527】Re:空白でないセルの文字を抽出し詰めて表... とまと 04/4/6(火) 21:52 回答
【12545】Re:空白でないセルの文字を抽出し詰めて... さくら 04/4/7(水) 11:31 お礼
【12547】Re:空白でないセルの文字を抽出し詰めて... ichinose 04/4/7(水) 12:00 発言
【12548】Re:空白でないセルの文字を抽出し詰めて... さくら 04/4/7(水) 12:40 お礼

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