BarcodeMaster の回答履歴

全60件中1~20件表示
  • 複数ファイルからデータを一括コピペするマクロ

    同じブックの中に複数ファイルがあります。ファイルはどれも同一のフォーマットです。 それぞれにシートが3つあるのですがこの3つの中のシートの中の1つのシートのA1からA10と B1からB10のデータを抽出してきて同じブックの中の「まとめ」とあるシートのB1:K1・B2:K2に縦横変換してコピペをしたいです。 ファイルが60くらいあるので繰り返し開いてコピペしての作業が大変なので これを繰り返し下どんどんファイルからコピペしたいです。 1つのファイルから2行まとめにコピペするのですが、マクロで簡単に作業できる方法はないでしょうか? またファイル名をまとめシートA1にも記載したいのですが、可能でしょうか? 記録マクロで作成しようと思ったのですが複数ファイルを次々「まとめ」シートに羅列ができず。。 お力を貸していただきたいです。 よろしくお願い致します。

  • VBS で IE ウィンドウがアクティブにならない

    Inputbox で URL 文字列の一部を打ち込むと、IE オブジェクトがある場合には新規タブを作成し、当該サイトへアクセスするスクリプトを作っています。 後述がサンプルです。 スクリプトの最後にウィンドウをアクティブにするコードを入れているのですが、スクリプト自体はエラーなく完了するものの、IE ウィンドウをアクティブにすることができません。 Win10+IE11 を使っているのですが、何かコードが足りなかったりするのでしょうか。。。 それとも、Win10 + IE11 環境ではそもそも VBS で IE ウィンドウをアクティブにすることはできないのでしょうか。。。 アドバイスを下さると幸いです。 よろしくお願いいたします。 -------------------------------------------------------------------- Dim linknum dim objIE dim spurl linknum=Inputbox("リンク番号を入力してください。") spurl="https://xxxx" & linknum 'Shell.Applicationオブジェクトの作成 Set objShell = CreateObject("Shell.Application") 'IEウィンドウの個数をカウント lngCount = 0 For Each objWindow In objShell.Windows lngCount = lngCount + 1 Next With objShell.Windows 'IE オブジェクトがないときは、新しく作成する If lngCount = 0 Then .Item.Navigate2 spurl lngCount = lngCount + 1 objIE.FullScreen = True objIE.Visible = True 'IE オブジェクトがあるときは、タブを操作する(新しいタブを作成) Else .Item(lngCount - 1).Navigate2 spurl,&H800 IE ウィンドウをアクティブにする Set WshShell=Wscript.CreateObject("Wscript.Shell") WshShell.AppActivate "ページタイトル" WshShell.SendKeys "%( )" WshShell.SendKeys "R" End If End With -------------------------------------------------------------------------------

  • Waveinを使用したAppのインストール

    ※ Waveinコントロールの著作権は、Kentaro HARA氏にあります。  Windows7 Professional SP1,64bit上のVS2010のVB2010で、Waveinコントロールを用いたAppを開発し、VSのセットアッププロジェクトでインストーラーを作りました。ターゲットはx86です。  開発機ではインストーラーが作成したexeは問題なく動くのですが、Windows7 Ultimate SP1,64bitのマシンにインストールしたexeが起動しません。というか、起動直後(ロード直後?)に停止するので、デバック情報も取れなくて困っています。  デバック情報がないのでWaveinが原因ではないかも知れませんが、他に心当たりがありません。HARA氏のHPによれば、C++のランタイムが必要となっていますので、   VC++ 2010 再頒布可能パッケージ (x86)   VC++ 2010 再頒布可能パッケージ (x64) を順番に当ててみましたが、駄目でした。  何か情報はないでしょうか?。

    • noname#221368
    • 回答数1
  • 複数ファイルからデータを一括コピペするマクロ

    同じブックの中に複数ファイルがあります。ファイルはどれも同一のフォーマットです。 それぞれにシートが3つあるのですがこの3つの中のシートの中の1つのシートのA1からA10と B1からB10のデータを抽出してきて同じブックの中の「まとめ」とあるシートのB1:K1・B2:K2に縦横変換してコピペをしたいです。 ファイルが60くらいあるので繰り返し開いてコピペしての作業が大変なので これを繰り返し下どんどんファイルからコピペしたいです。 1つのファイルから2行まとめにコピペするのですが、マクロで簡単に作業できる方法はないでしょうか? またファイル名をまとめシートA1にも記載したいのですが、可能でしょうか? 記録マクロで作成しようと思ったのですが複数ファイルを次々「まとめ」シートに羅列ができず。。 お力を貸していただきたいです。 よろしくお願い致します。

  • Access VBA について

    お世話になっております。 Access VBAを勉強しております。 テキストボックスに漢字とひらがなしか入力できないようにするにはどうすれば良いでしょうか。 Select Case等を使ってできないでしょうか。 初心者のため初歩的な質問で恐縮ですが、ご教授お願いします。

  • VB.NET フォームの縮小拡大について

    お世話になります。 VB.NETの初心者です。 フォームの縮小拡大について悩んでおります。 皆様のご意見を是非頂きたいです。 ・やりたいこと 画面のDPIによって画面表示は合わせかつ、ユーザがフォームにカーソルを当ててマウスで拡大、縮小できるようにしたい。 ・実施内容 VB.NETでフォームを作成し、そこにボタンが追加しました。 Windows7のコントロールパネルのデスクトップのカスタマイズ⇒ディスプレイのパーセントで 小:100%、中:125%のどちらでもフォームが正しく表示されるように、フォームのプロパティのAutoSizeをTrue、AutoScaleModel=DPIにしました。さらにユーザがフォームの縮小拡大をマウスでできるよう、AutoSizeModeをGrowOnlyにしました。 ・結果 フォームにあるボタンの端まで行くと、それ以上は縮小できず、拡大しても、フォームだけ大きくなり、ボタンは初期表示のサイズのまま変わりません。 ・質問 上記の「やりたいこと」を実現するにはフォームのプロパティの設定だけは不可能でしょうか。 また、実施するにはどのような方法をすればよいでしょうか。 皆様のお力を貸してください。 よろしくお願い致します。

  • VB2013でのプログラム作成でつまづきました

    初めまして ご質問です 会社にて、職場改善のため VB2013でプログラムを作成していますが PCに詳しいのが自分しかいなく、指名されました。。。 もちろん自作PCとか作れるぐらいですが プログラムなんてやったことないし困っています 職場にプログラム専門の方がいるので教育を受けていますが 2.3回教えてもらって  「windowsの電卓を作ろう」と言われました 電卓作成は、初心者用の題材らしいですが とりあえず教えてもらった事を駆使し まずは、テキストボックスとテキストボックスに数字を入れ その二つを +や-ボタンを押し =ボタンを押すと、3つ目のテキストボックスに表示させるという 簡単なプログラムは、なんとかできましたが windowsぽくすると 例 11 + 12 - 9 とテキストに表示され =ボタンを押すと 表示が消え 計算結果が表示されます いまの問題 ・整数と文字列を表示させ、計算だけさせる ・変数宣言、IF、Serectしか教わってない(それだけでできる言われた笑) ・まだ、いまいちわかっていないため 詳しく知りたい 無論、教えてもらったコードをそのまま使いたいわけじゃなく どーいう流れで、どーいう風にというのを理解したいです 結局は自分が理解して、少しずつやらないといけないので 詳しい方、教えてください。 現在なにもできてないコードです ここにどう埋めるか教えてほしいです ------------------------------------------------------------------------------ Option Explicit On Public Class Form Public oboe As String '押されたボタンが数値以外を覚える変数 Public befor As String '押されたボタンが数値の場合 覚える変数 Public anser As Integer ' 計算結果を保存する 変数 Public number As Integer '入力された数値を保存する 変数 Private Sub Form_Load(sender As Object, e As EventArgs) Handles MyBase.Load End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click '1 befor = "1" ans.Text &= "1" End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click '2 befor = "2" ans.Text &= "2" End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click '3 befor = "3" ans.Text &= "3" End Sub Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click 'たし算 oboe = "+" ans.Text &= "+" number = befor + ans.Text End Sub Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click '掛け算 End Sub Private Sub Button4_Click_1(sender As Object, e As EventArgs) Handles Button4.Click '計算 End Sub Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click 'CLEAR End Sub Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click '引き算 End Sub Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click '割り算 End Sub Private Sub ans_TextChanged(sender As Object, e As EventArgs) Handles ans.TextChanged

  • 読み込みデータが変化する理由

    下記の環境で行っております。 windows 7 32bit OS、Visual studio 2010 C# デバックモードで一行ずつ ステップインで読み出したデータを見ると正常な値を示しています。 ただ、そのままビルド(debug:any cpu)して実行すると、ステップインでは読み出したデータと違う値が得られます。こういうことはあるのでしょうか?色々読み出す時間などを長くとったりして試したのですが、解決しておりません。 お手数お掛け致しますがご教示お願い致します。

    • noname#256139
    • 回答数4
  • 納品書をExcelVBAで作成したいです。

    初めて質問いたします。 ExcelVBAマクロで納品書を作成使用と思っております。 シートは納品一覧というシートとSetting(開始行を設定するシート)と納品書の雛形シートの3つがあります。 納品一覧シートに納品書番号、発行日、納品日、販売店、商品、重量、数量、単価、金額(金額は自動計算)を入力。 Seettingシートは開始行と使用済み納品書番号(使用済み番号は自動で入ります。) 納品書雛形はA5サイズで9品まで表示することができます。 下記のようなコードを作成しましたが、ご質問したい事があります。 Option Explicit Const Maxrow = 10000 '共通変数定義 Public wsData As Worksheet '納品データを入れる変数 Public wsRiminder As Worksheet '納品書雛形 Public wsSetting As Worksheet 'セッティング用シート Public RowsData As Long '納品データの行 Public NouhinNum As Long '納品書番号 Public r, rr, r1, r2, r_to As Integer 'for文用カウンター Public previousCilient As String Public clientname As String 'シート初期化 Sub clear_Sheet() wsRiminder.Rows("15:23").Hidden = False '隠れている行を再表示する。 wsRiminder.Range("B15:X23").Value = "" '納品書の項目、数量、単価の部分を初期化 End Sub Sub Copy_Sheet() wsRiminder.Copy before:=wsRiminder '納品書雛形をコピーする ActiveSheet.Name = NouhinNum 'シート名を納品番号にする。 Set wsRiminder = ActiveSheet 'シートをコピーすると新しくできたシートがアクティブになる。 End Sub Sub Create_Riminder(r1, r2) '請求書作成 wsRiminder.Cells(2, 30).Value = NouhinNum '納品書番号 wsRiminder.Cells(3, 30).Value = wsData.Cells(r1, 2).Value '発行日 wsRiminder.Cells(4, 30).Value = wsData.Cells(r1, 3).Value '納品日 wsRiminder.Cells(6, 1).Value = wsData.Cells(r1, 4).Value '顧客名 r_to = 15 '納品書の項目名の最初の行番号 For r = r1 To r2 With wsRiminder .Cells(r_to, 2).Value = wsData.Cells(r, 5).Value '商品名 .Cells(r_to, 20).Value = wsData.Cells(r, 6).Value '重量 .Cells(r_to, 24).Value = wsData.Cells(r, 7).Value ' 数量 .Cells(r_to, 28).Value = wsData.Cells(r, 8).Value '単価 r_to = r_to + 1 End With Next wsData.Cells(r2, 10).Value = "済" End Sub Sub Createlist_Riminder(r1, r2) '請求書の項目の部分のみ作成 For r = r1 To r2 With wsRiminder .Cells(r_to, 2).Value = wsData.Cells(r, 5).Value '商品名 .Cells(r_to, 20).Value = wsData.Cells(r, 6).Value '重量 .Cells(r_to, 24).Value = wsData.Cells(r, 7).Value ' 数量 .Cells(r_to, 28).Value = wsData.Cells(r, 8).Value '単価 r_to = r_to + 1 End With Next wsData.Cells(r2, 10).Value = "済" End Sub Sub Process_Riminder() Dim BlnRtn As Boolean Set wsData = ActiveWorkbook.Worksheets("納品一覧") Set wsSetting = ActiveWorkbook.Worksheets("Setting") Set wsRiminder = ActiveWorkbook.Worksheets("納品書雛形") RowsData = wsData.Cells(Rows.Count, 2).End(xlUp).Row 'リストの最終行番号を取得 NouhinNum = wsSetting.Cells(2, 1).Value 'for文用カウンターの定義(r1=2行目から始める,r2はリストの行数) r1 = wsSetting.Cells(2, 1).Value r2 = r1 + 1 Do While Len(Trim(wsData.Cells(r1, 4).Value)) <> 0 And wsData.Cells(r1, 9).Value <> "済" '会社名が空欄ではない場合ループする previousCilient = wsData.Cells(r1 - 1, 4).Value clientname = wsData.Cells(r1, 4).Value If wsData.Cells(r1, 9).Value <> "済" Then 'リストが作成済みになっていないもの '会社名によって初期設定される雛形シートが違う If wsData.Cells(r1, 1).Value <> wsData.Cells(r1 - 1, 1).Value Then '納品書番号が次の行と違うとき NouhinNum = wsData.Cells(r1, 1).Value For r = r1 To r2 - 1 Call clear_Sheet '雛形シートを初期化 現在の納品書の雛形ですと9品までしか表示できないので 9品以上ある場合は別途納品内訳書というシートを作成してそこに商品名、重量、数量、単価、金額を表示するようにしたいのですが、どのように組めばいいかイメージがわきません。 どうかお力添えいただけないでしょうか。

    • noname#211938
    • 回答数2
  • vbaの速度向上について

    以下のエクセルvba内で、「シート★」のA列(項目名:条件)にある値に該当するデータのみを、抽出するというSQLを書いているのですが、その速度を速めたいです。 時間が掛かる部分は、SELECT句のところで、A列の条件を参照するのが、上から一つ一つになるためと分かっています。。。 何とか速度を速めることはできないでしょうか?お知恵を貸してください。 ※A列の条件が入力されている値の数(行数)は、変動します。 最小で50、最大で200となります。 ◆以下、VBA(一部)-------------- Dim mySQL AS String Dim i n = Cells(Rows.Count, 1).End(xlUp).Row For i = 2 to n mySQL = "SELECT * FROM [シート★$] WHERE 条件 = Cells(n, 1) " ※この下に、上記SQLから別シートにデータを出力するSQLを記載 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 以上

  • Overrides Sub WndProcについて

    こちらでは大変お世話になっております。 開発環境:Visual Studio 2012 Protected Overrides Sub WndProc(ByRef m As Message) MyBase.WndProc(m) End Sub 上記はよくあるメッセージ系のサブクラスで使うオーバーライトですが、 TextBoxのサブクラスでProtected Overrides Sub WndProc を使った場合に 入力された文字を一切、オブジェクトに渡したくない場合、 (TextBoxには入力された文字は一切表示させない) ByRef m As Message の m に対してどのようなプログラムを書けば、 この先のTextBoxに値を渡さなくできるでしょうか? m = Nothing などでは無理のようですので いろいろな加工を途中で行った文字列をプログラム側で代入したいなどを行いたいと 思っております。 何卒よろしくお願い申し上げます。

  • Overrides Sub WndProcについて

    こちらでは大変お世話になっております。 開発環境:Visual Studio 2012 Protected Overrides Sub WndProc(ByRef m As Message) MyBase.WndProc(m) End Sub 上記はよくあるメッセージ系のサブクラスで使うオーバーライトですが、 TextBoxのサブクラスでProtected Overrides Sub WndProc を使った場合に 入力された文字を一切、オブジェクトに渡したくない場合、 (TextBoxには入力された文字は一切表示させない) ByRef m As Message の m に対してどのようなプログラムを書けば、 この先のTextBoxに値を渡さなくできるでしょうか? m = Nothing などでは無理のようですので いろいろな加工を途中で行った文字列をプログラム側で代入したいなどを行いたいと 思っております。 何卒よろしくお願い申し上げます。

  • エクセルでRIつくりたい

    エクセルでRSIを描画したいのですが、どうしたらいいですか。期間は14日です。 A1から A20まで データがあります。 ご存知の方はおしえてください。

    • ki2222
    • 回答数2
  • VBAのByte配列からInteger値を取り出し

    Access VBA初心者です。 Dim Ax( 1 to 256 ) as Byte Dim Bx as Integer があるとします。 Ax(1)~Ax(256)には,データが入っています。 Ax(102)~Ax(103)を切り出して,Bxに代入したいのですが,どうしたら良いのでしょうか。 Bxの値は整数として,あとの処理に使います。

  • VBAのByte配列からInteger値を取り出し

    Access VBA初心者です。 Dim Ax( 1 to 256 ) as Byte Dim Bx as Integer があるとします。 Ax(1)~Ax(256)には,データが入っています。 Ax(102)~Ax(103)を切り出して,Bxに代入したいのですが,どうしたら良いのでしょうか。 Bxの値は整数として,あとの処理に使います。

  • 既に配置してるTabコントロールのオーバーライド

    お世話になります。 環境:Visual Strudio 2012 VB.Net フォームにTABコントールを配置しまして、いろいろと設定やボタンなどを配置しました。 結構苦労してデザインなども行いました。 ところが、このTABコントロールに対しまして、Protected Overrides Sub WndProc(ByRef m As Message) が必要となりまして、サブクラスにして配置しなおせば可能なのは、十分わかっているのですが、ボタンやデザインなど全て設定し直さないといけなと思うと失神しそうになった次第であります。 既にデザインやボタンなどを配置したTABコントロール対して、Protected Overrides Sub WndProc(ByRef m As Message) を後付させることは可能なのでしょうか? 最悪はサブクラスを作成して、デザインをやり直す覚悟ですが、最後と思いましてこちらに質問させていただきました。 何卒よろしくお願い致します。

  • Excel VBA 突然停止

    お世話になります。 標記の件で悩んでおります。 out.csv→→→中間ファイル.xlsm→本処理ファイル.xlsm 201510.csv→ 上記の通り、2つのExcelフォーマットのcsvファイルを中間ファイルに読み込ませるVBAを作成し、中間ファイルを一度作りました。これは正常に処理が止まらず、正しく書き込まれています。 因みに、csvエクセル形式行数は3万行ぐらいです。レコード数は、100万行ですが、私は、csvのデータをレコード数で読み込ませていません。 単純に、エクセルフォーマットでcsvファイルを開き、範囲指定してそれを、単純に中間ファイルでTempシートに単純にコピペし、不要なコメント行とか空欄を中間ファイルのマクロで、削除し、中間ファイルで必要なデータを作成しています。 ここまでは、間違いなく出来ております。つまり、レコード数を何か別のPGで読み込ませてエクセルに取り込ませることはしておりません。 そこで、最終の本処理ファイル.xlsmに中間ファイルをオープンして読み込ませると、途中で停止してしまいます。 そこで、本処理ファイルのVBAのプログラムの関数の一つ一つにブレークポイントを入れ、処理したところ、今度は、問題なく出来てしまいます。 結果を担当者に聞くと、間違いなく出来ているようだと言っていました。 そこで、ブレークポイントではなく、自動処理できないかと思い、もう一度、中間ファイルを本処理ファイルでオープンすると、予想通り、停止します。 そこで、再度、先ほどと同じ様にブレークポイントを入れて処理をしようとしたところ、読み込むこともあるし、読み込んでも停止してしまいます。 論理上、このようなことが、あるのかと思って困っています。 環境は、各ファイルをファイルサーバーに置いて処理しています。 ローカル、自分のPC単体ではやっていません。 Win 7 Professional 32bit版 4GBのPCです。 2010 Excel ご回答よろしくお願い致します。

  • ★WindowsのForm表示をVBで制御したい

    お世話になります。 さて「アプリA」という無料ソフトがあって、 それは「OEM」ボタンなるものを提供しており、 自作ソフトMeから通信で制御できるのです。 つまりアプリAの機能を自由に使えるわけです。 そこで、アプリAのボタンをMeから押して、 アプリAのメニュー画面が出して見ると、 自作ソフトMeが最前面のままとなるのです。 これではAかAメニューのどこかをクリックして、 Aを最前面にするか、Meを最小化しないと、 メニュー操作ができません。 ましてやMe画面を最大化しているときは、 AとAメニューは裏に隠れて見えすらしません。 タスクバーをクリック操作すればよいでしょうが、 そうした操作なしに自動化したいのです。 (添付の画像を参照してください) そこで現状は自作ソフトMeから、 1)アプリAを最小化するメッセージを送る SendMessage(p.MainWindowHandle,&H112,&HF020,0) 上記関数の引数の意味はよく分かりませんが。 2)アプリAの目的のボタンを通信で押す。 AppliObj.DoButton( TARGET_BUTTOM ) ここからが困っています。 。 3a)アプリAを元のサイズにするメッセージを送る SendMessage(p.MainWindowHandle,&H112,&HF120,0) ところが!、2)をした後では反応しません。 Aメニューがモーダルフォームだからのようです。 順序を逆にしたら、このやっていること自体が無意味。 3b)アプリAの最小化アイコンを手動クリックする これは成功! Aメニューだけがポップ表示されました。 しかも自作ソフトMeの前面に! しかし手動クリックをすることは目的から外れます。 3c)アプリAの最小化アイコンを自動クリックする ところがそのアイコンのX座標が状況で変わるため 自動クリックの位置が定まりません。 なにか解決策を教えてもらえないでしょうか! よろしくお願い申し上げます m(__)m

  • VB6の移行

    情シスとしてシステム会社から最近中途入社しました。 年配の担当者が内作して色々とプログラムを作っていますが、未だVB6で作っています。 今更VB?という感じですが、win7でもwin10でも動作するので、イマイチ.NETに替えるメリットが見出だせません。 結構そういう会社多いような気がするんですが、皆さんどういう対応してますか? ご意見ください。

  • Visual Basicでデータベース接続について

    こんにちは。 VB初心者です。 前任者が作成したCSVファイルをメモリに格納するプログラムから Oracleテーブルのデータからメモリへ格納するプログラムへ 変更したいのですが、全くのVB初心者でわかりません。 ヒントでもいいですので教えてください。 CSVファイルをメモリに格納するプログラムは以下の通りです。 Function ReadCSV(ByVal szFilePath As String) As String()() ' (全般) に Imports 追記 ' Imports System.IO ' Imports System.Text Dim arrayTempLines()() As String = {} ' ストリームを開きます Dim reader As New IO.StreamReader(szFilePath, System.Text.Encoding.Default) Dim iIdx As Integer = 0 ' 一気に読み込みます Dim szData As String = reader.ReadToEnd() ' 不要な文字を取り除きます szData = szData.Replace(vbCr, "") ' 改行で分離して配列に格納します Dim arrayLines() = szData.Split(vbLf) Dim szLine As String For Each szLine In arrayLines Dim iCount As Integer = 0 Dim szTemp As String = "" Dim bValid As Boolean = False If szLine.Length > 1 Then ' 配列の追加します ReDim Preserve arrayTempLines(iIdx) ' カンマ区切りで分離して配列に格納します arrayTempLines(iIdx) = szLine.Split(",") ' データのチェックをします If arrayTempLines.Length >= 1 And _ arrayTempLines(iIdx)(0) <> "" Then bValid = True ' 不要データを除きます For Each szTemp In arrayTempLines(iIdx) arrayTempLines(iIdx)(iCount) = _ szTemp.Replace(Chr(34), "").TrimEnd() ' Chr(34)は"のことを指します iCount += 1 Next ' 配列数チェックをします If bValid Then iIdx += 1 End If Next ' 配列を切り詰めます 'ReDim Preserve arrayTempLines(iIdx - 1) ' 読み込み用のストリームを閉じます If (Not reader Is Nothing) Then reader.Close() reader = Nothing End If ReadCSV = arrayTempLines End Function 以上です。 ちなみに、Oracleテーブルの中にはフィールドが二つあります。