Excel VBA質問箱 IV

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

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


68733 / 76738 ←次へ | 前へ→

【12534】Re:それともユーザー定義関数にする?(訂正)
発言  ichinose  - 04/4/7(水) 7:37 -

引用なし
パスワード
   おはようございます。
いくつもの間違いあったので、訂正します。


>別解です。と言ってもロジックはほとんど同じだけど・・・。
>
>まず、以下のコードをユーザー定義関数として使います。
>標準モジュールに
>
>'========================================================
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
  Dim b_var As Long
  jdx = 0
  b_var = rng.Rows.Count
  For idx = 0 To rng.Count - 1
   temp = rng.Cells(idx Mod b_var + 1, idx \ b_var + 1).Value
   If temp <> "" Then
     wk(1, jdx + 1) = temp
     jdx = jdx + 1
     End If
   Next
  For idx = jdx + 1 To UBound(wk(), 2) '←大きい間違い 1!!
   wk(1, idx) = "" '大きい間違い 2
   Next
  sort_sp = wk()
End Function

他にも気がついてところを訂正しておきました。


>***設定方法です。
>
>・配列数式としてワークシートに関数を設定します。
>
>・調査範囲は、(Sheet1)のセルA1〜D3だとします。
>
>・Sheet2のセルA1〜L1を選択して下さい(理由は、4列*3行=調査範囲=12だから)
>
>・選択した状態でセルA1がアクティブになっているはずです。
>


・そのまま、「=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 お礼

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