お願いします通報するこの質問への回答は締め切られました。BasicとWin32APIの相互運用でそういう事になってるとしか・・・・。Win32APIは元々C言語用のAPIなので、VBから呼び出す時はケースバイケースで妙なお作法があったりするのです。(2)それはSampledataがByteの配列だからだ。UBoundは配列の最大要素番号を返すものだが、StrConvが返したバイト数を指定する場面ではByteの配列の要素数がそのままバイト数になる。vbFromUnicode)をByteの配列に代入してUBoundを取ると1少なくなるんじゃないかなぁ。UBound(Sampledata)は4になるんじゃなかろうか。(3)この第三引数は、入力じゃなくて出力だ。あなたが値を設定してWriteFileに渡すのではなく、WriteFile内で値を設定してあなたに返してくれるものだ。あなたは何の値も格納しなくてよい。Declareを見ると、そこだけByValが無い事に気づくだろう。それが、VBで言うところのByRef、呼び元と呼び先で変数を共有する仕組みだ。(4)それは「カレントディレクトリ」と呼ばれる仕組みによって実現されている。カレントディレクトリとは、「ディレクトリを指定せずにファイルを読み書きしたらそのディレクトリが補完される」ディレクトリの事で、VB6やVBAではChDirステートメントで変更する事ができる。回答ありがとうございます。Byteの配列を初めて見たのですが、回答のおかげで理解できました。UBound値も4になっていました。(1)や(4)のようにお約束になっていることがかなりあるのですね。わかりやすい解説で理解できました。マクロ実行時エラー’1004’お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!全カテゴリから検索このカテゴリから検索Q質問する(無料)このQ&Aを見た人はこんなQ&Aも見ています出産前後の痔にはご注意!一体なぜ妊娠・出産には痔がつきまとうのだろうか?その理由を見ていこう。Basic(VBA)出産前後の痔にはご注意!一体なぜ妊娠・出産には痔がつきまとうのだろうか?その理由を見ていこう。いうかパソコン初心者です。