DOBON.NETプログラミング道掲示板

■ 「新規作成」から投稿できます。
■ マルチポストされた投稿を見つけたときは、その投稿に返信することによりご報告ください。その際は匿名で投稿し、マルチポストされている場所を併記してください。
■ スパム対策のため、メールアドレスの先頭に"_"という文字が付加されています。
RSS 2.0 RSS 2.0 | RSS 0.91 | 携帯電話用 | 自分専用のアイコンを使用するには | 掲示板への要望 | 管理人に連絡 | お気楽掲示板
■ 24時間以内に作成されたスレッドは New で表示されます。
■ 24時間以内に更新されたスレッドは UpDate で表示されます。

記事リスト ( )内の数字はレス数
UpDateVB.netにおける固定長出力方法(3) | NomalDataObjectの使いまわし(5) | NomalVB.NETからRDゲートウェイを利用したリモートデスクトップ接続(3) | NomalLIstview のDataSource(2) | NomalClassの作り方(2) | NomalOpenFileDialogの初期ファイル名の表示が変(1) | NomalVB.NETのVBA化(2) | Nomal改行のコード(7) | NomalGoogle翻訳の結果の取得(2) | NomalStopwatchクラスのElapsedMillisecondsの挙動(2) | Nomal.net Chartで二重ドーナツグラフの作り方(3) | Nomalexeをショートカットから起動した場合のエラー(2) | Nomalデスクトップ と Desktop(6) | Nomalデザイナのプロパティウィンドウで静的プロパティを選択したい(3) | NomalPHPでシリアライズした、データをデシリアライズしたい(4) | Nomal二次元配列 インデックスが配列の境界外(2) | NomalVB.netで作成したexeのNgenによる弊害(1) | NomalDrawBezierの使い方について(7) | Nomalメジャーバージョンの異なるLog4netライブラリを参照したい(4) | NomalVB6→2005変換時のDeclare宣言のマーシャリング属性(8) | NomalGROUPBOXの複製について(vb.net)(1) | NomalActiveReports 3.0からActiveReports 7.0へのァイルコンバータについて(4) | NomalAccess OLEでExecuteNonQuery(3) | NomalKeyDownでの右コントロールキーイベント(2) | NomalExcel複数シートの印刷順序(3) | NomalWMPへno(3) | NomalDataGridViewの行番号(7) | Nomalapp.config定義によるネットワークトレースログの世代管理(2) | Nomalrelease/debugのどちらで作成されたものかを判断する方法(2) | NomalC#コンソールアプリでタイピング練習ソフト作成(3) | Nomal自分自身を呼び出すのはOKですか(1) | NomalWebBrowser Control foreachで値が消える(2) | NomalDeclare宣言するdllと参照追加をするdllの区別(4) | NomalTaskクラスを.NET Framework 2.0で実現させる方法(2) | NomalVS2017で作成されたDLLをVS2005で作成されたAPで使用する方法(4) | NomalWebBrowser Controlを使って、任意の値を取得(5) | NomalEditボックスに簡体字をセットする方法(2) | NomalList型でエラーが起きてしまい・・・(1) | Nomalフォルダ内の全ての容量を取得したい(4) | NomalWebClientが上手く動かない(2) | Nomal共変性と反変性ってこういうこと?(4) | Nomalモードレスフォーム Warning IDE0067を回避したい(7) | NomalLINQの拡張メソッドの定義(1) | Nomalこんな演算子初めて見ました。(5) | Nomalプロセスからウインドウを取得(4) | Nomalフォーム外のカーソルの変更(2) | NomalLINQのメソッド構文の書き方(3) | NomalVB.NETでCSVを読み込む際にSQL文を使いたい(3) | NomalRichTextBoxで入力文字の自動折り返しを止めたい(2) | NomalRichTextBoxで入力文字の自動折り返しを止めたい(5) | Nomalラムダ式の勉強中(2) | NomalWebClientで、短期間にDownloadStringAsyncを実行したい(2) | Nomalvb.net+SQLiteで複数データベースファイルへのトランザクション方法(3) | NomalNewの使い方間違ってますか?(4) | Nomalジェネリック型インターフェースを使った変数を扱いたい(3) | NomalC#をVBに変換(2) | NomalProcess.WaitForExitで正常に動作しない?(3) | NomalCatch時のex.StackTraceの情報(3) | Nomalユーザーコントロール内のテキストボックスのmodifiedプロパティ(4) | NomalPictureBox.Locationのキャンセル(3) | NomalJOIN操作の構文エラー(4) | NomalVisualStudioでマクロ(3) | NomalVisualStudioでExcelのVSTO開発(3) | NomalOracleDataAccess を参照したプログラムでデバッグモードが機能しなくなる(3) | NomalIE11では表示されるが、.netのWebBrowserでは、表示されないHPを表示する方法(7) | NomalマウスのないOSでマウスカーソルの表示(2) | NomalRDP接続でのネットワーク帯域制限(0) | NomalFILE.COPYでIOExceptionエラーが出る(11) | NomalToolStripMenuItemにShortcutKeysを指定した際の、元のコントロールを取得する方法(2) | Nomal動的にプロパティや変数の値の取得(4) | NomalVB6 ほかのアプリケーションを起動し そのアプリケーションは終了させる方法(4) | NomalMouseEventArgsのカレント座標(2) | Nomalリッチテキストボックスでの字間の調整(2) | NomalDrawImage でメモリ不足エラー(3) | Nomal必須コンポーネントの一覧に追加したい(0) | NomalCode128でバーコードが読み取れない(8) | NomalあるWindows10PCでビルドしたEXEがW8.1以下で実行エラー(5) | NomalApp.configのMy.Application.Log設定で使用できない属性が出る(0) | NomalVC++ → VB.Netに変換時に文法エラー(2) | Nomalvb2010を使用したmicrosoft Wordの任意の行の削除(0) | NomalVb.netからAccessへの接続について(3) | NomalSQL-Server Compact 4.0が表示されない(2) | Nomalバーコードの数字を非表示にしたい(2) | Nomal令和の日付への対応(3) | Nomalスクロールバーが出た時に高さを変えたい(4) | Nomal自作したアプリの発行元を明記したい(2) | NomalHTTP 417エラーを発生させるためのIIS設定はどうすればよいか(3) | Nomal起動ディスプレイの指定方法について(6) | NomalSystem.Threading.Thread.Sleep()と変数(2) | NomalVisual Studio DataTableの値のアクセスの仕方(2) | NomalDatagridviewのクリア(2) | NomalDataGridView 行の背景色の設定(2) | NomalListBoxにデータが表示されない(6) | NomalPIctureBox同士を論理合成したい(3) | NomalDrawString前のFillRectangle有無により文字の太さが違う理由について教えて下さい(3) | Nomalポルトガル語の登録(5) | NomalnumericUpDwonコントロールのvalue(2) | Nomalデータセット定義ファイルからDataTable(3) | NomalDataTableの構造が同じか調べるメソッド(2) | Nomalネットの画像の複数枚を重ね合わせたい(3) |



■記事リスト / ▼下のスレッド
■34493 / 親記事)  GROUPBOXの複製について(vb.net)
□投稿者/ 北松 一般人(1回)-(2020/06/29(Mon) 11:44:40)
  • アイコン環境/言語:[vb.net] 
    分類:[.NET] 

    VB.NETでプログラミング中です。

    WindowsFormにて、
    Form1内にGroupBox1を作成し、
    GroupBox1内に複数のLabelやTextBoxを配置しています。
    TextBoxには住所や氏名を入力し、
    Botton1クリックイベントでデータベースにレコードを登録します。

    【ここからやりたいこと】
    Botton2クリックイベントにてGroupBox1を複製し、真下にGroupBox2を作成し
    たい。
    作成されたGroupBox2内のTextBoxはすべてブランク。
    Botton2クリックイベントのたび、GroupBox3、GroupBox4と追加する。
    GroupBox1とGroupBox2にそれぞれ情報を入力し、別レコードとしてデータベー
    スに登録する。
    【ここまでやりたいこと】

    上記処理は可能でしょうか?
    可能な場合、サンプル等ご教授いただければ幸いです。

    不可の場合、代替手段があれば教えてください。

    よろしくお願いします。
違反を報告
引用返信

▽[全レス1件(ResNo.1-1 表示)]
■34494 / ResNo.1)  【報告】No34493 の投稿はマルチポストです
□投稿者/ (報告) 大御所(274回)-(2020/06/29(Mon) 16:28:29)
  • アイコンNo34493 の投稿はマルチポストです。もし元記事の投稿者にマルチポストの心当たりがない場合は、すぐに返信でお知らせください。

    ●マルチポストされている場所
    http://bbs.wankuma.com/index.cgi?mode=al2&namber=95177

    ----------
    この掲示板ではマルチポストが禁止されています。詳しくは、「書き込みのルールについて」をお読みください。

    ●書き込みのルールについて
    https://dobon.net/vb/bbs/index.html
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-1]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34488 / 親記事)  ActiveReports 3.0からActiveReports 7.0へのァイルコンバータについて
□投稿者/ かずき 一般人(1回)-(2020/06/18(Thu) 23:26:37)
  • アイコン環境/言語:[windows 10 64bit] 
    分類:[.NET] 

    初めて投稿させて頂きます。

    ActiveReports 3.0からActiveReports 7.0に変更し、ファイルコンバータでコードを更新したのですが、以下コードが正常に機能せずリビルドを行えません・・・どなたか対処方法をご教示頂けないでしょうか。。。。
    かなりピンチで困っております。

    Visual studio 2012で開発しています。OSはwindows10です。

    ・DataDynamics.ActiveReports.Toolbar.ToolStrip.PlaceHolder
    ・Document.Print
    ・Me.Viewer1.Toolbar.ToolStrip.Tools(i).Visible

    ルールは確認しましたが、マナーなどに問題があればご指摘いただければ幸いです。
違反を報告
引用返信

▽[全レス4件(ResNo.1-4 表示)]
■34489 / ResNo.1)  Re[1]: ActiveReports 3.0からActiveReports 7.0へのァイルコンバータについて
□投稿者/ KOZ 一般人(1回)-(2020/06/19(Fri) 08:41:29)
  • アイコンNo34488に返信(かずきさんの記事)
    > ・DataDynamics.ActiveReports.Toolbar.ToolStrip.PlaceHolder
    > ・Document.Print
    > ・Me.Viewer1.Toolbar.ToolStrip.Tools(i).Visible

    ここを見れば解決しそうな気がします。

    「互換性に関する注意事項」
    https://docs.grapecity.com/help/activereports-9/Compatibility.html

違反を報告
引用返信
■34490 / ResNo.2)  Re[2]: ActiveReports 3.0からActiveReports 7.0へのァイルコンバータについて
□投稿者/ かずき 一般人(2回)-(2020/06/19(Fri) 10:45:12)
  • アイコン ここを見れば解決しそうな気がします。
    >
    > 「互換性に関する注意事項」
    > https://docs.grapecity.com/help/activereports-9/Compatibility.html
    >

    KOZ様

    情報のご提供ありがとうございます。

    URLを参考とし、少し手を加えてみましたがうまく進みません。

    ・DataDynamics.ActiveReports.Toolbar.ToolStrip.PlaceHolder
    →修正前は『Dim phd(3) As DataDynamics.ActiveReports.Toolbar.ToolStrip.PlaceHolder』と定義されたいたため、以下のように3つの変数として分けるようにしました。

    Dim phd_1 As New ToolStripButton("カスタム注釈")
    Dim phd_2 As New ToolStripButton("カスタム注釈")
    Dim phd_3 As New ToolStripButton("カスタム注釈")

    その結果、以下の2箇所でエラーが発生するようになってしまいました。

    phd_1.Control = ctrLabel(0) ※ctrLabel(0)はLabelコントロールです
    phd_1.Id = 24


    ・Document.Print
    →まだ解決策が見えていません。


    ・Me.Viewer1.Toolbar.ToolStrip.Tools(i).Visible
    →『Me.Viewer1.Toolbar.ToolStrip.Items(i).Visible = False』と変更したところエラーが発生しなくなりましたが、まだリビルドをかけられていないため動作の確認を行えていません。



    私の理解不足により何から何まで質問する形となり大変恐縮ではございますが、
    月曜納品と納品まであまり時間がなくかなりテンパっております。

    お力添えの程、何卒よろしくお願い致します。

違反を報告
引用返信
■34491 / ResNo.3)  Re[3]: ActiveReports 3.0からActiveReports 7.0へのァイルコンバータについて
□投稿者/ KOZ 一般人(2回)-(2020/06/19(Fri) 13:51:54)
  • アイコンNo34490に返信(かずきさんの記事)

    ツールバーは、Windows Forms の ToolStrip なので、ラベルであれば ToolStripLabel に置き換えれば良いのでは?

    並びや機能が違うでしょうから、前のプログラムと同等の表示にしたいのであれば調整が必要になります。

    > ・Document.Print
    > →まだ解決策が見えていません。

    Viewer.Printメソッドを使用しては?

違反を報告
引用返信
■34492 / ResNo.4)  Re[4]: ActiveReports 3.0からActiveReports 7.0へのァイルコンバータについて
□投稿者/ かずき 一般人(3回)-(2020/06/19(Fri) 17:47:01)
  • アイコンNo34491に返信(KOZさんの記事)
    > ■No34490に返信(かずきさんの記事)
    >
    > ツールバーは、Windows Forms の ToolStrip なので、ラベルであれば ToolStripLabel に置き換えれば良いのでは?
    >
    > 並びや機能が違うでしょうから、前のプログラムと同等の表示にしたいのであれば調整が必要になります。
    >
    >>・Document.Print
    >>→まだ解決策が見えていません。
    >
    > Viewer.Printメソッドを使用しては?
    >

    KOZ様

    ご返事ありがとうございます。

    ご助言頂いた内容にてなんとかエラーは発生しない状態にすることができました。

    納品日がずれたのでまだ動作確認は一切できていませんが、
    (今日は帰って良いと言われました)
    来週の動作確認後に何かありましたらまたこの掲示板にて相談させて頂くかもしれません。その時は何卒よろしくお願い申し上げます。

    また、こちらは解決済と致します。

    本当にありがとうございました。
解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-4]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34484 / 親記事)  Access OLEでExecuteNonQuery
□投稿者/ み 一般人(1回)-(2020/06/16(Tue) 02:06:47)
  • アイコン環境/言語:[VS2019 NET4.5] 
    分類:[.NET] 

    こんにちは「み」ともうします。
    下記C#2019 AccessDBに対してデータ登録(update)するコードです。
    
    StrSQL = "UPDATE TABLE1 SET DATA1 = @D1 WHERE D2 = @WKEY"
    ExecuteNonQueryの実行後で処理件数は0が返ります。
    ちなみに(insert)はうまくいきます。
    現在updateのみ失敗します(いろんなテーブルにためにましたが0件でした。
    元ソースのSQL-SERVERからAccessのOLE接続にしたためなにか
    不都合な箇所がありますでしょうか
    よろしくお願い致します。
    
    using (OleDbConnection conn = new OleDbConnection(ConnectionString))
    {
        try
        {
            conn.Open();
            using (OleDbCommand cmd = new OleDbCommand(StrSQL, conn))
            {
                cmd.Parameters.Clear();
                cmd.Connection = conn;
    
                para = "@WKEY";
                cmd.Parameters.Add(new OleDbParameter(para, OleDbType.VarChar));
                cmd.Parameters[para].Direction = ParameterDirection.Input;
                cmd.Parameters[para].Value = "TEST";
    
                para = "@D1";
                cmd.Parameters.Add(new OleDbParameter(para, OleDbType.Integer));
                cmd.Parameters[para].Direction = ParameterDirection.Input;
                cmd.Parameters[para].Value = 1;
                int s =  cmd.ExecuteNonQuery();
            }
        }
        catch (Exception ex)
        {
        }
    }

違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■34485 / ResNo.1)  Re[1]: Access OLEでExecuteNonQuery
□投稿者/ Hongliang 大御所(580回)-(2020/06/16(Tue) 09:27:04)
  • アイコン2020/06/16(Tue) 14:59:34 編集(投稿者)

    > StrSQL = "UPDATE TABLE1 SET DATA1 = @D1 WHERE D2 = @WKEY"

    > para = "@WKEY";
    > cmd.Parameters.Add(new OleDbParameter(para, OleDbType.VarChar));
    > cmd.Parameters[para].Direction = ParameterDirection.Input;
    > cmd.Parameters[para].Value = "TEST";
    >
    > para = "@D1";
    > cmd.Parameters.Add(new OleDbParameter(para, OleDbType.Integer));
    > cmd.Parameters[para].Direction = ParameterDirection.Input;
    > cmd.Parameters[para].Value = 1;

    OLEDBの仕様からくるものだったかと思いますが、OleDbCommandのパラメータは、名前を無視して、単純にAddされた順に、クエリのパラメータ部分に当てはめていく仕様のはずです。
    なのでこの場合、クエリに最初に出現するパラメータ DATA = @D1 のところに、最初にAddされたパラメータ Name:="@WKEY", Type:=OleDbType.VarChar, Value:="TEST" が当てはめられることになります。

    // OleDbを使う場合はクエリ内のパラメータ指示子は基本的に ? を使うので、@xxx が使えるのは知りませんでした。
    // でもどうせ名前は使われないので却ってややこしい部分もありますね。
違反を報告
引用返信
■34486 / ResNo.2)  Re[2]: Access OLEでExecuteNonQuery
□投稿者/ み 一般人(2回)-(2020/06/16(Tue) 21:54:16)
  • アイコンHongliangさん 返信ありがとうございます。
    順番を変えてたところ正常に処理されました。
    そうかOLEは順番どうりにしないとだめなんですね・・
    AddしないでSQL文からReplaceで文字列変換した方が保守しやすいかも。
    ありがとうございました。


    No34485に返信(Hongliangさんの記事)
    >
    > OLEDBの仕様からくるものだったかと思いますが、OleDbCommandのパラメータは、名前を無視して、単純にAddされた順に、クエリのパラメータ部分に当てはめていく仕様のはずです。
    > なのでこの場合、クエリに最初に出現するパラメータ DATA = @D1 のところに、最初にAddされたパラメータ Name:="@WKEY", Type:=OleDbType.VarChar, Value:="TEST" が当てはめられることになります。

解決み!
違反を報告
引用返信
■34487 / ResNo.3)  Re[3]: Access OLEでExecuteNonQuery
□投稿者/ Hongliang 大御所(581回)-(2020/06/17(Wed) 09:14:19)
  • アイコン> AddしないでSQL文からReplaceで文字列変換した方が保守しやすいかも。

    静的な文字列ならともかく、外部から入力される文字列を直接クエリに混ぜ込むのはNGです。
    SQLインジェクションを起こす典型的なパターンです。
    必ずパラメータを使いましょう。
解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-3]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34481 / 親記事)  KeyDownでの右コントロールキーイベント
□投稿者/ Kuroi 一般人(1回)-(2020/06/13(Sat) 12:24:52)
  • アイコン環境/言語:[VB.NET(2005)/Windows7 32bit→1064bit] 
    分類:[.NET] 

    これまでWindows7 32bitで動作していた社内アプリについて、Windows10 64bitで動作しないかと検証したところ、
    Form_KeyDownイベントでの右コントロール(Keys.RControlKey)が反応しないことがわかりました。
    これを何とか動かしたいと考えています。

    厳密には、過去にWindows8や10の64bitで検証したときも動かず、ただしその時に、コンパイラの
    CPUがAnyになっているため、x86にすれば直る、あるいはSDKに含まれるCorFlags.exeにて対応すれば動いていました。

    ところが時間が暫く経って、今になって同じことをしようとするも動かなくなりました。
    変わったことといえば、PCが新しくなって、.netFramework3.5が初期状態オフになってことぐらいしか思い浮かびません。

    (ソース変えずに動けばベストなのですが)
    そもそもを何とかしようと考えております。
    右コントロール(Keys.RControlKey)以外の、たとえばKeys.F1などとすればこれは反応しました。
    Keys.Zなども反応します。
    ただ、Keys.ControlKeyやKeys.ShiftKeyなどは同様に動作しませんでした。
    CtrlやShift(ALTも?)などのキーは特殊キーだということはググっていて何となくわかってきたのですが、
    右コントロールキーを使って、何とか代替手段などで進められる方法があればご教示願えないでしょうか。

違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■34482 / ResNo.1)  Re[1]: KeyDownでの右コントロールキーイベント
□投稿者/ Hongliang 大御所(579回)-(2020/06/13(Sat) 14:19:31)
  • アイコン// ひょっとしたらキーボードやキーボードドライバによる影響もあるのかもしれませんが

    Keys列挙体はWindowsのVirtual Key, VKをそのまま転写したものです。
    https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getkeyboardstate
    そして、ctrlキーのL/Rを区別するVK_LCONTROL/VK_RCONTROLは、
    > These left- and right-distinguishing constants are available to an application only through the GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState, and MapVirtualKey functions.
    とあるように、非常に限定されたAPIでのみ有効な値になっています。
    Control.KeyDownイベントはWM_KEYDOWNメッセージのラッパであり、ここでは単純にWM_KEYDOWNのWPARAMをKeysとして扱ってるだけなので、Windows/WinFormとしては、KeyDownイベントのKeyEventArgs.KeyDataでL/Rの区別はつけていないというのが仕様と考えられます。

    区別をつけたいのであれば、前述のVK_L*/VK_R*を使えると明言されているAPIを改めて呼び出す必要があるでしょう。
違反を報告
引用返信
■34483 / ResNo.2)  Re[2]: KeyDownでの右コントロールキーイベント
□投稿者/ Kuroi 一般人(3回)-(2020/06/14(Sun) 11:07:54)
  • アイコンHongliang様

    ありがとうございます。
    L/Rどころか、Shift、Control単体でもダメだったので、何かあるのかなと思っていました。

    その後、少し検証を進めたところ、たまたま次のようにしていて

    Case Keys.F1
     関数呼び出し()
    Case Keys.RControlKey
     関数呼び出し()

    やはり右コントロールはきかないのですが、一度、F1キーを入力した後はきくようになりました。
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-2]



■記事リスト / ▲上のスレッド
■34476 / 親記事)  Excel複数シートの印刷順序
□投稿者/ .net困惑者 一般人(1回)-(2020/06/02(Tue) 19:03:36)
  • アイコン環境/言語:[Windows10 .net2019 Excel2010] 
    分類:[.NET] 

    始めて投稿させて頂きます。
    VB2019にてExcel帳票を印刷するプログラムを作成中なのですが、

    [シート1][シート2][シート3][シート4][シート5]

    という内容で構成されたエクセルファイルがあるとしまして、

    [シート3][シート1][シート5]

    という内容で印刷しようとしています。
    (pdfの為、一括での印刷の必要があります)

    Dim prSheet() as String ((0)[シート3],(1)[シート1],(2)[シート5]と準備済)
    Dim selSheets As Excel.Sheets = xlBook.Sheets.Item(prSheet)

    と配列渡しでその順に印刷されると考えていたのですが

    [シート1][シート3][シート5]

    と出力されてしまい、出力順序を決める方法で困っています。
    皆様のお知恵をお貸しいただければと投稿させて頂きました。

違反を報告
引用返信

▽[全レス3件(ResNo.1-3 表示)]
■34477 / ResNo.1)  Re[1]: Excel複数シートの印刷順序
□投稿者/ 魔界の仮面弁士 大御所(1284回)-(2020/06/03(Wed) 10:51:40)
  • アイコンNo34476に返信(.net困惑者さんの記事)
    > Dim prSheet() as String ((0)[シート3],(1)[シート1],(2)[シート5]と準備済)
    > Dim selSheets As Excel.Sheets = xlBook.Sheets.Item(prSheet)

    xlBook.Sheets.Item の構文を使ってしまうと、Sheets コレクションの
    オブジェクト解放漏れに陥る可能性がありそうです…。


    .NET からだと解放手続きが面倒なので、以下の回答では
    VBA なコードにて検証しています。ご容赦ください。

    まず、元質問にあった

     Dim prSheet() As String
     prSheet = Split("Sheet3 Sheet1 Sheet5") '3シート

     Dim selSheets As Excel.Sheets
     Set selSheets = ThisWorkbook.Sheets(prSheet)

    の場合、For Each sh In selSheets することで、
    配列で指定した順序そのままで列挙されることを確認しました。

    また、配列の中身が Split("Sheet3 Sheet1 Sheet5 Sheet3") なら、
    Sheet3 が最初と最後に合計 2 回列挙されて 4 シートとなる状態でした。


    しかし上記いずれの場合も、selSheets.PrintPreview によって
    プレビューされるのは、Sheet1, Sheet3, Sheet5 の順番となりました。

    このことから、Excel.Sheets の列挙順を変えるだけでは、
    印刷順を制御できないのだという事が分かります。


    どうしても印刷順を変更したいのであれば、
    印刷順に反映されるよう、並び変える必要がありそうです。

    Dim xlSheets As Excel.Sheets
    Set xlSheets = xlBook.Sheets

    Dim selSheets As Excel.Sheets
    Set selSheets = xlSheets.Item(prSheet)

    If xlSheets.Count > 1 Then
      Dim xlSheet As Object
      Dim n As Integer
      For n = selSheets.Count To 1 Step -1
        Set xlSheet = selSheets.Item(n)
        Dim xlFirstSheet As Object
        Set xlFirstSheet = xlSheets.Item(1)
        If Not xlSheet Is xlFirstSheet Then
          xlSheet.Move Before:=xlFirstSheet
        End If
      Next
    End If


    もし、「元の順番を変更したくない」とか、
    「同じページが複数回現れる事も許可したい」となれば、
    別の作業用ブックにコピーしておき、
    それを印刷あるいは印刷プレビューするとか…。


    xlApp.SheetsInNewWorkbook = 1
    Dim newBook As Excel.Workbook
    Set newBook = xlApp.Workbooks.Add()
    Dim newSheets As Excel.Sheets
    Set newSheets = newBook.Sheets
    Dim firstSheet As Excel.Worksheet
    Set firstSheet = newSheets(1)
    Dim dstSheet As Object
    Set dstSheet = firstSheet
    dstSheet.Name = vbTab
    Dim srcSheet As Object
    For Each srcSheet In selSheets
    srcSheet.Copy After:=dstSheet
    Set dstSheet = newSheets(newSheets.Count)
    Next
    firstSheet.Delete

    newSheets.PrintPreview
    newBook.Close SaveChanges:=False
違反を報告
引用返信
■34478 / ResNo.2)  Re[2]: Excel複数シートの印刷順序
□投稿者/ .net困惑者 一般人(1回)-(2020/06/04(Thu) 13:07:37)
  • アイコン出先から拝見させて頂いています。
    たいへん親切でご丁寧なご助言ありがとうございます!
    検証までして頂いて・・・涙

    戻り次第、下記ご助言の方法にて試してみます。
    本当にありがとうございました。結果は追ってご連絡させて頂きます。


    > どうしても印刷順を変更したいのであれば、
    > 印刷順に反映されるよう、並び変える必要がありそうです。

違反を報告
引用返信
■34480 / ResNo.3)  Re[2]: Excel複数シートの印刷順序
□投稿者/ .net困惑者 一般人(3回)-(2020/06/06(Sat) 15:40:24)
  • アイコンNo34477に返信(魔界の仮面弁士さんの記事)

    引用させて頂き、無事に解決致しました!
    ありがとうございました!
解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-3]






Mode/  Pass/


- Child Tree -

2020/12/03(Thu) 04:35:50 に作成されたキャッシュを表示しています。
生のデータを表示する | キャッシュを最新にする