results(0, 0) = "国語" ___________________________  ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は  Dim xlBook 配列は同じデータ型の変数をまとめて扱うことができる機能です。 前ページの配列で説明した配列は一次元配列というもので、単純な並びのデータの場合に有効です。. 特に指定もなく、1番目の要素を基準に並べている。, 中身を確かめている時に気づいたが、2、3番目の要素もちゃんとソートされている。 引数で、対象桁を変更できます。, Worksheets("シート名").Activate --------- Sub 別ブックから貼り付ける() また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。 """, """ ここでFormBをUnloadしてもFormA.tagの値は影響を受けないので自由に使えます。 で、現在 "アクティブにして" 操作対象になっているブックの名前は Sub A1() 自分では、部品表の商品番号をコピーして、コード一覧表で検索し、検索結果の右隣のセル(B列のコード)の値を部品表のC列に貼り付ければよいかと思い、書いてみたんですが… End Sub あまり使われませんが、Formにはtagというプロパティがあります。 ただし、別ファイルになりますので、どうしても同じファイルで、というなら Windows("部品表.xls").Activate  Set xlBook = Workbooks.Open("C:\★★\コード一覧表.xls") '★要変更★ [9, 6, 3] ※イメージ vntArray(0,1)=bbb [5, 7, 4] [0, 6, 9] [0, 6, 9] Excel97 でも、同じですね。以下で試してみてください。 A 'カレントディレクトリ ThisWorkbook.Name results(0, 1) = "英語" End Sub, VBA初心者です。(おそらく)基本的な質問で、申し訳ありません。 モータ  U-1325-L   End Sub Sub hokangosa() | ITD001 | 00000002 |2005/08/22| 18:20 | 商品名  商品番号  コード 多次元配列 二次元配列. Sub Sample() DMN = Application.RoundDown(ZPOS / ZPS, 0) を行うにはどのように記述すればいいでしょうか? Dim a As Workbook [9, 2, 9] (1)科目名で昇順ソート C C:\経理\予算.xls Option Explicit If Not a Is Nothing Then, EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。 処理 FormAからFormBを呼び出し、FormBで変更した値をFormA.tagにセットします。 EXCEL97ファイルがあります。 vntArray(0,2)=菊地 Sub TESTを実行した時に、ユーザーフォーム1からNの値を引き継ぐには、どうしたら良いのでしょうか?よろしくお願いします。, 'モジュールに変数宣言(グローバル変数) [9, 6, 3] End Sub モータ  U-1325-L   よろしくお願いいたします。 基本事項は本で学びましたが、呪文のようなコードはよく理解できません。懸命にネットで検索して、訳して理解する努力をしてはいますが。 MsgBox (" >>> 補間誤差自動計算 <<< ") vntArray(0,0)=001・・・個人ID c = Application.DefaultFilePath N = TextBox1.Text Exel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について. If a <> nothing then ←この部分が分からない。このままだとエラー。 [0, 10, 6] Sub TEST () 部品表は、何百種類もありますので、関数...続きを読む, こんにちは。 実施したやり方は、一方のFormの宣言領域で、”Public abc As String”を宣言、両方のFormの(変数に値を入れた方と変数を使う方の)プロシージャーの宣言では引数として(abc As String)と記述しました。 """, """ 'このブックのパス これは「文字列形式であれば何でも格納できる」という、上手く使えば便利なプロパティです。 みたいな感じでできませんか?, 皆様のお知恵を拝借させてください。 やりたいことは と、してみたものの、検索しても、その検索結果の隣のセルのコードをどうやって取得すればいいのかが、わかりませんでした。 [6, 3, 6] 'sample 以前の記事「 配列をソートする 」では1次元の配列をソートする方法でしたが今回は2次元配列をソートします。, 上記の記事で使ったBubbleSort2を改造して2次元配列をソートできるようにしました。, BubbleSortのほうが大きい配列をソートするのを速くできるようなのでBubbleSortのほうにしました。, 2次元配列をソートするためにはi番目の「行」とi+1番目の「行」を入れ替えなくてはいけません。, Function BubbleSort3(TempArray As Variant, Col As Integer, Order As Integer)'Option Base 1で実行'Col= ソートの基準の列'Order = 0 昇順'Order = 1 降順, Dim Temp() As Variant    ReDim Temp(1, UBound(TempArray, 2))        Dim i As Integer, j As Integer    Dim NoExchanges As Integer, ' ループの終わりでNoExchanges = Trueで終了    Do        NoExchanges = True, For i = 1 To UBound(TempArray, 1) - 1            If Order = 0 Then                '昇順                If TempArray(i, Col) > TempArray(i + 1, Col) Then                    NoExchanges = False                    For j = 1 To UBound(TempArray, 2)                        Temp(1, j) = TempArray(i, j)                    Next j                    For j = 1 To UBound(TempArray, 2)                        TempArray(i, j) = TempArray(i + 1, j)                    Next j                    For j = 1 To UBound(TempArray, 2)                        TempArray(i + 1, j) = Temp(1, j)                    Next j                End If            ElseIf Order = 1 Then                '降順                If TempArray(i, Col) < TempArray(i + 1, Col) Then                    NoExchanges = False                    For j = 1 To UBound(TempArray, 2)                        Temp(1, j) = TempArray(i, j)                    Next j                    For j = 1 To UBound(TempArray, 2)                        TempArray(i, j) = TempArray(i + 1, j)                    Next j                    For j = 1 To UBound(TempArray, 2)                        TempArray(i + 1, j) = Temp(1, j)                    Next j                End If            End If        Next i    Loop While Not (NoExchanges), 範囲A2:G11を配列に格納して、A列を基準に降順にソートします。ソートした配列をA20を基準に出力します。, ここではわかりやすくシートのデータを配列の内容に使っています。シートのデータ(セル)を並び替えるだけなら「並び替え」をVBAで実行するのがいいと思います。, Sub macro110212a()'BubbleSort3使用例        'ソートする配列    Dim vData As Variant    vData = Range("A2:G11")        '配列vDataを1列目を基準に降順にソートする    Call BubbleSort3(vData, 1, 0)        'ソート後の配列を出力    Range("A20").Resize(UBound(vData), UBound(vData, 2)) = vData    End Sub, 例えば上のコードで使ったVariant型の配列でいうとvData(3)で3行目を扱うことはできませんでした。, ちなみにvData(3)をウォッチウィンドウで見てみると値は「インデックスが有効範囲にありません」となります。.