chibita_papa の回答履歴

全323件中21~40件表示
  • SendKeysを使いたい。

    SendKeysを使いたい。 XP-Excel2003です。 Microsoft Bisual Basicのヘルプに記述してある次の構文のうち、 SendKeysが実行されません。 Dim ReturnValue, I ReturnValue = Shell("CALC.EXE", 1) AppActivate ReturnValue For I = 1 To 20 SendKeys I & "{+}", True Next I SendKeys "=", True SendKeys "%{F4}", True F8キーにて、順次実行は出来るのですが、SendKeysが有効になりません。 参照設定の何かにチェックがついていないのだと思います。 その何かを、または別の方法をお教え願います。

  • Aのシートにデータがあり、BのシートからAのデータを読み込み、エクセル

    Aのシートにデータがあり、BのシートからAのデータを読み込み、エクセル形式で表示するVBAで組まれたエクセルがあります。 Bに読み込まれたエクセルだけを、デスクトップに保存したいのです。 ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\gsoumu7.COMP\デスクトップ\最新ver\" & bkname & ".xls", _ FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False 以前は動いていたのですが、しばらくぶりに動かしたら動かなくなってしまいました。 以前はOFFICE2000か2003で今は2007になっています。 大変困っています。どなたかお助けください。

  • 経理において、初歩的な質問ですみません^^;

    経理において、初歩的な質問ですみません^^; 仕事で人手が足りなく、知り合いに手伝ってもらって 日当@8000×16日で=12.8000支払う事になりました。 もちろん、領収書は、その知り合いに書いてもらい、印紙はってもらえば、いいんですよね?

  • シート上のオプションボタン、チェックボックスを配列にする。

    シート上のオプションボタン、チェックボックスを配列にする。 Excel2003です。 シート上にオプションボタン、チェックボックスを増やすと、OptionButtonN、CheckBoxN (大文字Nは任意の数値)となります。これをOptionButton(N)のように配列にできないでしょうか? プログラムで扱う場合、配列でしたら処理が楽になると思うからです。 また、同じくシート上にオプションボタンを配置するとどれか1つしか選択できません。(ひとつしかValueをTrueにできません。) UserFormのようにFrameがあればその中で1つを選択できるのですが、シート上に直接配置する場合、Frameが扱えないように思います。グループ化して複数選択する方法はないでしょうか。 よろしくお願いします。

  • 条件に合うフォルダが存在するかを調べたい

    条件に合うフォルダが存在するかを調べたい c:\a\ フォルダ内に、以下例のようなフォルダが存在するとします。 c:\a\ (以下c:\a\内フォルダ名) f0001_r120 f0003_c511 f0004_t141 f0006_q546 f0009_k551 f0011_g151 ・ ・ ・ このaフォルダ内に、例えば「f0004」で始まるフォルダ名のフォルダがあるかどうかを調べたいのです。 以下のようなプログラムを組んだのですが、うまく動作しません。 なお、この例でいう「f0004_t141」の「_t141」のフォルダ名部分は他プログラムでランダムに作成される文字列であり、検索する側で知りえる情報ではなく、私的にはワイルドカード「*」ようなもので処理することしか思いつきません。。(;;) If System.IO.Directory.Exists("c:\a\f0004*") Then MsgBox("ある") Else MsgBox("ない") End If おそらく、System.IO.Directory.Exists自体に「*」が使用できないと思うのですが、何か他によい方法があればどうかご教授ください。 どうぞよろしくお願いします。

  • ComboBoxの項目からある部分の数字だけを抽出したい。

    ComboBoxの項目からある部分の数字だけを抽出したい。 例えばComboBox内に「カツ丼 @500円@」という項目があったとします。 この項目内の@から@にある数字のみを抽出してTextBoxに表示したいのですがどうすればいいでしょうか。 お詳しい方、よければ教えてください。 よろしくお願いします。 開発環境はVisualStudio2010です。

  • SQLServerのselect文でデータ数1万くらいのDBから

    SQLServerのselect文でデータ数1万くらいのDBから top n と order by つきで取得したときに、 10秒以上かかってしまいます。 top n だけや order byだけであれば、そんなにかかりませんが、 同時に扱う場合、なぜこんなに時間がかかってしまうのでしょうか?

  • VBA ネットワーク上のファイルでカレントフォルダを取得するには?

    VBA ネットワーク上のファイルでカレントフォルダを取得するには? VBA超初心者でネットで色々調べて、ところどころコピーしながらプログラムを作っています。 ローカルのPCでは問題なく動くまでになったのですが、実際にはネットワーク上の共有サーバで実行したいのですが、ネットワーク上ではカレントパスがうまく設定できていないようで、動きません。 CreateObject("WScript.Shell").CurrentDirectory = ThisWorkbook.Path というコードでVBAが置いてあるフォルダをカレントディレクトリに設定するようにしています。 どのようにしたらネットワークサーバで動くようになりますか?

  • EXCEL2003で形式を選択して貼り付けするとき、図?としてしか貼り付けられない

    EXCEL2003を使用しています。 ファイルAのsheet1に「形式を選択して貼り付け」で「値」をコピーしたいと思います。 貼り付ける元の数値は、ファイルBのsheet1にある数値です。 ファイルBのsheet1の数値をコピーし、ファイルAのsheet1に「形式を選択して貼り付け」でコピーしようとすると、いつもと違うメニュー(添付ファイルのとおり)が出てきて、値コピーができません。 どうしたらよいのでしょうか?

  • コマンドプロンプトを終了せずにリダイレクトするには?

    コマンドプロンプトを終了せずにリダイレクトするには? VBからコマンドプロンプトを操作し、結果をLabelに貼り付けることを考えています。 しかし、コマンドプロンプトを起動するプロセスにリダイレクト設定をしたところ、実行するたびに終了してしまい、その後のコマンド入力でプロセスが見つからずエラーとなってしまいます。コマンドプロンプトは終了せずにリダイレクトの設定する方法を教えて頂けないでしょうか。 また、コマンドプロンプト自体は表示させずに実行できるのが理想なので、やり方のヒントだけでも頂けると助かります。 操作例(VBのボタンから):cmd.exe起動 → cd c:\ → dir エラー内容:プロセス 'c:\windows\system32\cmd.exe' が見つかりませんでした。 動作環境:VB2005、Windows XP ============================== Public Class Form1 Private Sub Button19_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button19.Click Dim P1 As New System.Diagnostics.Process P1.StartInfo.UseShellExecute = False P1.StartInfo.RedirectStandardOutput = True P1.StartInfo.FileName = "cmd.exe" P1.Start() End Sub Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click AppActivate("c:\windows\system32\cmd.exe") SendKeys.SendWait("CD c:\{Enter}") Label5.Text = P1.StandardOutput.ReadToEnd() End Sub Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click AppActivate("c:\windows\system32\cmd.exe") SendKeys.SendWait("DIR{Enter}") Label5.Text = P1.StandardOutput.ReadToEnd() End Sub

  • コマンドプロンプトを終了せずにリダイレクトするには?

    コマンドプロンプトを終了せずにリダイレクトするには? VBからコマンドプロンプトを操作し、結果をLabelに貼り付けることを考えています。 しかし、コマンドプロンプトを起動するプロセスにリダイレクト設定をしたところ、実行するたびに終了してしまい、その後のコマンド入力でプロセスが見つからずエラーとなってしまいます。コマンドプロンプトは終了せずにリダイレクトの設定する方法を教えて頂けないでしょうか。 また、コマンドプロンプト自体は表示させずに実行できるのが理想なので、やり方のヒントだけでも頂けると助かります。 操作例(VBのボタンから):cmd.exe起動 → cd c:\ → dir エラー内容:プロセス 'c:\windows\system32\cmd.exe' が見つかりませんでした。 動作環境:VB2005、Windows XP ============================== Public Class Form1 Private Sub Button19_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button19.Click Dim P1 As New System.Diagnostics.Process P1.StartInfo.UseShellExecute = False P1.StartInfo.RedirectStandardOutput = True P1.StartInfo.FileName = "cmd.exe" P1.Start() End Sub Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click AppActivate("c:\windows\system32\cmd.exe") SendKeys.SendWait("CD c:\{Enter}") Label5.Text = P1.StandardOutput.ReadToEnd() End Sub Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click AppActivate("c:\windows\system32\cmd.exe") SendKeys.SendWait("DIR{Enter}") Label5.Text = P1.StandardOutput.ReadToEnd() End Sub

  • コマンドプロンプトを終了せずにリダイレクトするには?

    コマンドプロンプトを終了せずにリダイレクトするには? VBからコマンドプロンプトを操作し、結果をLabelに貼り付けることを考えています。 しかし、コマンドプロンプトを起動するプロセスにリダイレクト設定をしたところ、実行するたびに終了してしまい、その後のコマンド入力でプロセスが見つからずエラーとなってしまいます。コマンドプロンプトは終了せずにリダイレクトの設定する方法を教えて頂けないでしょうか。 また、コマンドプロンプト自体は表示させずに実行できるのが理想なので、やり方のヒントだけでも頂けると助かります。 操作例(VBのボタンから):cmd.exe起動 → cd c:\ → dir エラー内容:プロセス 'c:\windows\system32\cmd.exe' が見つかりませんでした。 動作環境:VB2005、Windows XP ============================== Public Class Form1 Private Sub Button19_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button19.Click Dim P1 As New System.Diagnostics.Process P1.StartInfo.UseShellExecute = False P1.StartInfo.RedirectStandardOutput = True P1.StartInfo.FileName = "cmd.exe" P1.Start() End Sub Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click AppActivate("c:\windows\system32\cmd.exe") SendKeys.SendWait("CD c:\{Enter}") Label5.Text = P1.StandardOutput.ReadToEnd() End Sub Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click AppActivate("c:\windows\system32\cmd.exe") SendKeys.SendWait("DIR{Enter}") Label5.Text = P1.StandardOutput.ReadToEnd() End Sub

  • ユーザーフォームで動的(Me.Controls.Add)に作成したコントロールの削除

    Excelのvbaでユーザーフォームを作成しました。 UserForm_initialize()内でコントロールを以下のように動的に作成・配置しました。 Me.Controls.Add("Forms.ComboBox.1", "ComboBox" & i, True) 別のコマンドを用意して、そこから表示するコントロール数を変更させたいので、パブリック変数を使用してループ回数を指定したうえでフォームを再表示させました。 しかし、ループ回数を増やした場合は良いのですが、減らした場合でも一度表示されたコントロールが消えません。 良い方法を教えて下さい。 よろしくお願いします。

  • 2次元動的配列の第一引数のみを可変にする

    ReDim Preserve aStrSKU(x, 2) aStrSKU(x, 0) = strPre aStrSKU(x, 1) = サブ2 aStrSKU(x, 2) = サブ3 x = x + 1 上記のソースをDo Untilでまわしているのですが、 2週目以降にxに1を足して行数だけ増やしたいのですが、 2週目でエラーが発生します。 行数だけ要素数を増やす方法はありますか?

  • コマンドプロンプトを終了せずにリダイレクトするには?

    コマンドプロンプトを終了せずにリダイレクトするには? VBからコマンドプロンプトを操作し、結果をLabelに貼り付けることを考えています。 しかし、コマンドプロンプトを起動するプロセスにリダイレクト設定をしたところ、実行するたびに終了してしまい、その後のコマンド入力でプロセスが見つからずエラーとなってしまいます。コマンドプロンプトは終了せずにリダイレクトの設定する方法を教えて頂けないでしょうか。 また、コマンドプロンプト自体は表示させずに実行できるのが理想なので、やり方のヒントだけでも頂けると助かります。 操作例(VBのボタンから):cmd.exe起動 → cd c:\ → dir エラー内容:プロセス 'c:\windows\system32\cmd.exe' が見つかりませんでした。 動作環境:VB2005、Windows XP ============================== Public Class Form1 Private Sub Button19_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button19.Click Dim P1 As New System.Diagnostics.Process P1.StartInfo.UseShellExecute = False P1.StartInfo.RedirectStandardOutput = True P1.StartInfo.FileName = "cmd.exe" P1.Start() End Sub Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click AppActivate("c:\windows\system32\cmd.exe") SendKeys.SendWait("CD c:\{Enter}") Label5.Text = P1.StandardOutput.ReadToEnd() End Sub Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click AppActivate("c:\windows\system32\cmd.exe") SendKeys.SendWait("DIR{Enter}") Label5.Text = P1.StandardOutput.ReadToEnd() End Sub

  • コマンドプロンプトを終了せずにリダイレクトするには?

    コマンドプロンプトを終了せずにリダイレクトするには? VBからコマンドプロンプトを操作し、結果をLabelに貼り付けることを考えています。 しかし、コマンドプロンプトを起動するプロセスにリダイレクト設定をしたところ、実行するたびに終了してしまい、その後のコマンド入力でプロセスが見つからずエラーとなってしまいます。コマンドプロンプトは終了せずにリダイレクトの設定する方法を教えて頂けないでしょうか。 また、コマンドプロンプト自体は表示させずに実行できるのが理想なので、やり方のヒントだけでも頂けると助かります。 操作例(VBのボタンから):cmd.exe起動 → cd c:\ → dir エラー内容:プロセス 'c:\windows\system32\cmd.exe' が見つかりませんでした。 動作環境:VB2005、Windows XP ============================== Public Class Form1 Private Sub Button19_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button19.Click Dim P1 As New System.Diagnostics.Process P1.StartInfo.UseShellExecute = False P1.StartInfo.RedirectStandardOutput = True P1.StartInfo.FileName = "cmd.exe" P1.Start() End Sub Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click AppActivate("c:\windows\system32\cmd.exe") SendKeys.SendWait("CD c:\{Enter}") Label5.Text = P1.StandardOutput.ReadToEnd() End Sub Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click AppActivate("c:\windows\system32\cmd.exe") SendKeys.SendWait("DIR{Enter}") Label5.Text = P1.StandardOutput.ReadToEnd() End Sub

  • レコードセットの中身を配列に、そしてワークシートに。

    今excel2003のVBEで外部データベースから店舗別の売上データを取得し それをエクセルのワークシートに出力するというプログラムを作成しています。 ここで問題なのが扱うデータの量が多すぎでレコードセット検索を 使用してそれをDo Until RS.EOFで各店舗の日別売上に出力していくとものすごく時間がかかってしまいます。 そのため配列を使う方法を見つけたのですが配列を使ったことなくて どうしたらよいのかわかりません。 なんとかレコードセットの中身を配列に格納後にそれを一気に範囲貼り付けしたいと思います。 でも配列内で売上表のフォーマットに整形を行うことができるのでしょうか? レコードセットのフィールドは店舗別日別売上、売上日付、店舗コード、ブランドセクションです。 売上日付|ブランドセクション|店舗コード|店舗別日別売上 20100201      100     1001     100000 20100201      100     1002     10000 ・          ・      ・      ・ ・          ・      ・      ・  売上表のフォーマットは縦列に1から月末までの日にち、横行に各店舗名が並んでいて各店舗の日別売上が一目でわかるつくりになっています。 各店舗名の上に店舗コードを持たせてそれを元に入力列を取得するという方法も考えたのですがそれも効率的とは思えません。 なにか良い方法はないでしょうか? アドバイスお願いします。 最後に文章だけの説明でわかりにくくてすみません。 よろしくおねがいします。

  • レコードセットの中身を配列に、そしてワークシートに。

    今excel2003のVBEで外部データベースから店舗別の売上データを取得し それをエクセルのワークシートに出力するというプログラムを作成しています。 ここで問題なのが扱うデータの量が多すぎでレコードセット検索を 使用してそれをDo Until RS.EOFで各店舗の日別売上に出力していくとものすごく時間がかかってしまいます。 そのため配列を使う方法を見つけたのですが配列を使ったことなくて どうしたらよいのかわかりません。 なんとかレコードセットの中身を配列に格納後にそれを一気に範囲貼り付けしたいと思います。 でも配列内で売上表のフォーマットに整形を行うことができるのでしょうか? レコードセットのフィールドは店舗別日別売上、売上日付、店舗コード、ブランドセクションです。 売上日付|ブランドセクション|店舗コード|店舗別日別売上 20100201      100     1001     100000 20100201      100     1002     10000 ・          ・      ・      ・ ・          ・      ・      ・  売上表のフォーマットは縦列に1から月末までの日にち、横行に各店舗名が並んでいて各店舗の日別売上が一目でわかるつくりになっています。 各店舗名の上に店舗コードを持たせてそれを元に入力列を取得するという方法も考えたのですがそれも効率的とは思えません。 なにか良い方法はないでしょうか? アドバイスお願いします。 最後に文章だけの説明でわかりにくくてすみません。 よろしくおねがいします。

  • 行挿入+貼付けと空白行削除を同時に行うには?

    行挿入+貼付けと空白行削除を同時に行うには? VBA初心者です。 仕事でエクセルを使っていますが、 no  工程1 工程2 工程3 1   A   B   C 2   B   _   A 3   C   A   _ 4   _   C   A という表を no  工程 1   A     B     C 2   B     A 3   C     A 4   C というように並び替えたいのですが、 現在は各番号ごとに3行挿入して工程をコピー、行と列を入れ替えて貼付けをしています。 これだと no  工程 1   A     B     C 2   B      A 3   C     A 4     C     A のように空白行ができてしまいます。これをもう一度、マクロで消しているのですが、 データ量が多いため、行挿入と空白行を消す作業を同時に行わないとシート最大行数である 65536行を超えてしまう可能性があります。 同時にやるにはどのようにすればよいのでしょうか? よろしくおねがいします。

  • VBAでBook読み込み時の非表示方法は??

    VBAでBook読み込み時の非表示方法は?? ExelのVBAでマクロを作成しています。 既存の*.exl ファイルを読み込むとき、 その内容を画面に表示しない方法があったら、 ご教示ください。 複数の既存の*.exl ファイルを連続して読み込み、 Books Objectに取得して、そのCell データを 集計しているのですが、読み込み完了と同時に そのBookがActiveになって、画面に出現します。 この画面表示をぜずに、データ処理して Closeし、次々に処理を進めたいと思っています。 よろしくお願いいたします。