ap_2 の回答履歴

全199件中21~40件表示
  • VBA エラー時に中断できず停止になります

     今晩は、質問させていただきます。どうぞよろしくお願いいたします。  環境:Win7 Home 64Bit      Excel2010 でございます。  VBA実行中にエラーが表示された際、Ctrl+Breakキーを押しますと「一時中断」モード(エラー行が黄色になって、その時点での個々の変数に入っている値が調べられる状況)になると思うのですが、 今は、「型が一致しません。」後にCtrl+Breakキーを押しますと何故か「停止」モードになってしまい、デバッグが出来ず困っております。  何処かに設定や何らかの回避策などあるものなのでございましょうか? もしお詳しい方がいらっしゃいましたら,どうぞよろしくお願いいたします。

  • VBA エラー時に中断できず停止になります

     今晩は、質問させていただきます。どうぞよろしくお願いいたします。  環境:Win7 Home 64Bit      Excel2010 でございます。  VBA実行中にエラーが表示された際、Ctrl+Breakキーを押しますと「一時中断」モード(エラー行が黄色になって、その時点での個々の変数に入っている値が調べられる状況)になると思うのですが、 今は、「型が一致しません。」後にCtrl+Breakキーを押しますと何故か「停止」モードになってしまい、デバッグが出来ず困っております。  何処かに設定や何らかの回避策などあるものなのでございましょうか? もしお詳しい方がいらっしゃいましたら,どうぞよろしくお願いいたします。

  • VBA エラー時に中断できず停止になります

     今晩は、質問させていただきます。どうぞよろしくお願いいたします。  環境:Win7 Home 64Bit      Excel2010 でございます。  VBA実行中にエラーが表示された際、Ctrl+Breakキーを押しますと「一時中断」モード(エラー行が黄色になって、その時点での個々の変数に入っている値が調べられる状況)になると思うのですが、 今は、「型が一致しません。」後にCtrl+Breakキーを押しますと何故か「停止」モードになってしまい、デバッグが出来ず困っております。  何処かに設定や何らかの回避策などあるものなのでございましょうか? もしお詳しい方がいらっしゃいましたら,どうぞよろしくお願いいたします。

  • メソッドの作成方法

    メソッドの作成方法に関して不明な点がありますので教えてください。 次の例はExcel VBAで作成したものです。 ---- Class Point ---- Public x As Integer, y As Integer ---- Class Line ---- Public FromPoint As Point, ToPoint As Point Sub Clear() Set FromPoint = New Point ToPoint.x = 0 ToPoint.y = 0 End Sub ---- テスト用プログラム ---- Sub test() Dim a As New Point, b As New Point, c As New Line a.x = 1 a.y = 2 b.x = 3 b.y = 4 Set c.FromPoint = a Set c.ToPoint = b c.Clear End Sub -------- 以上のプログラムにおいて test を実行すると c.Clear を実行したとき a の内容は変化しませんが b の内容は変化してしまいます。 これは Clearメソッドにおいて FromPoint のように新しいオブジェクトで設定するか、ToPoint のようにオブジェクトはそのままで内容を変更するかの違いです。 メソッドの作り方としてはどちらの方法を採用すべきでしょうか。 Class を使う側からすれば、各Classごとに副作用が異なるのは困るので同じ基準でメソッドを作りたいのですが。 一般的にはメソッドを実行するたびに新しいオブジェクトを作るわけではないので(上記の例でいえば Clearメソッドで新しい Lineオブジェクトを作成するわけではない)下位レベルのオブジェクトについても新たにオブジェクトを作らないほうが考え方が統一されてよいとは思いますが。 しかし、下位レベルのオブジェクトを Nothing にする場合などはどうしても動作が異なってしまうので、どうすべきか混乱しています。

  • Nothingを代入しないままNew

    VBAでコレクションの要素を一括削除する方法として、下記のコードが掲載されていましたが Nothingを代入しないままNewを使用しても問題ないでしょうか。 また、この辺りの挙動について詳しく書かれているサイトがありましたら、ご教示頂ければ幸いです。 Dim fruits As Collection Set fruits = New Collection With fruits Call .Add("バナナ") Call .Add("リンゴ") Call .Add("ミカン") End With Set fruits = New Collection

  • ExcelVBAマクロでの文字コード出力について確

    ExcelVBAマクロでの文字コード出力について確認させてください。 ExcelでA列から行方向に漢字、記号(環境依存文字も含む)のデータが1文字ずつ入力されてあります。これをExcelVBAマクロにより、B列にShift_JISの文字コード、C列にJIS X 0213の文字コードに変換して表示することは可能でしょうか。 例えばIMEパッドで「亜」の文字コードはShift_JISでは"889F"、JIS X 0213では"1-16-1"ですがこの文字コードをB列、C列にそれぞれ表示させたいです。 またその他のいい方法があればご教授いただけますでしょうか。 以上、よろしくお願いいたします。

  • VBAで組み合わせソフトを作ろうとしています

    VBAで、様々な大会のためのスイスドローマッチングツールを作ろうとしています。 今困っているのはスイスドローの大会で必ず発生する階段の処理です。 スイスドローは同じ勝利数の人同士が対戦するようになっていますが、例えば1回戦を終えた時点で1勝の人が奇数人しかいない場合があります。 その場合、1勝の人と0勝の人が対戦する組み合わせが1組発生します。 現在は勝利数ごとに対戦の組み合わせを作り、作った後でそれらを統合して一つのペアリングシートにして印刷、張り出しています。 しかし勝利数ごとに参加者を分けて組み合わせているため、この階段の処理をうまく行うことができません。 どうにかして階段の処理を滞りなく行いたいのですが、どのような処理を行えばよいでしょうか。 よろしくお願いします。

  • VBA Worksheetsはプロパティなの?

    (株)C&R研究所発行 Excel VBA逆引きハンドブック 著者 蒲生睦男 234ページを引用します。 ----- ワークシートを参照するには「Worksheets」プロパティを使います。「Worksheets」プロパティは、指定されたブックのすべてのワークシートを表す「Sheets」コレクションを返します。 ----- 私は今までWorksheetsはコレクションだと思ってました。つまりワークシートの集合であると。違うのですか?さらにプロパティはオブジェクトの性質を表わすもので、例えばCellのプロパティであればValue, Colour等です。では、Worksheetsは何のプロパティなのでしょうか?Workbookのプロパティですか?もしそうなら、他にはどんなプロパティがあるのですか?さらに上記引用で「返す」とありますが、返すってなんですか?ファンクションプロシージャの戻り値を返す、みたいな表現はありますがここでの「返す」の意味がよくわかりません。 私の現状認識は以下のものです。どこか誤ってますか? Worksheetsはワークシートの集合体つまりコレクションであり、ワークシートオブジェクトでもある。オブジェクトであるので、性質を表わすプロパティではない。 VBAの構文で Workbook.Worksheet.Range のような表現はよく使いますが、ひょっとして後ろにくっつくのは全部プロパティなのですか?ちょっとよくわかりません。

  • VBA Worksheetsはプロパティなの?

    (株)C&R研究所発行 Excel VBA逆引きハンドブック 著者 蒲生睦男 234ページを引用します。 ----- ワークシートを参照するには「Worksheets」プロパティを使います。「Worksheets」プロパティは、指定されたブックのすべてのワークシートを表す「Sheets」コレクションを返します。 ----- 私は今までWorksheetsはコレクションだと思ってました。つまりワークシートの集合であると。違うのですか?さらにプロパティはオブジェクトの性質を表わすもので、例えばCellのプロパティであればValue, Colour等です。では、Worksheetsは何のプロパティなのでしょうか?Workbookのプロパティですか?もしそうなら、他にはどんなプロパティがあるのですか?さらに上記引用で「返す」とありますが、返すってなんですか?ファンクションプロシージャの戻り値を返す、みたいな表現はありますがここでの「返す」の意味がよくわかりません。 私の現状認識は以下のものです。どこか誤ってますか? Worksheetsはワークシートの集合体つまりコレクションであり、ワークシートオブジェクトでもある。オブジェクトであるので、性質を表わすプロパティではない。 VBAの構文で Workbook.Worksheet.Range のような表現はよく使いますが、ひょっとして後ろにくっつくのは全部プロパティなのですか?ちょっとよくわかりません。

  • Excel VBA チェックボックスについて

    Excel 2013 ActiveXのテキストボックスコントロールです。 チェックボックスにチェックを入れると、右のボックスにチェックした日の日付が入るようにしました。 この日付から3日後→6日後→9日後(日付経過によって)によって背景色を変えたいです。 ちなみに〘連絡待ち〙と書いてあるテキストボックスの背景色を変えたいです。 ご回答よろしくお願いします。

  • Excell2010VBAmacro互換性

    マイクロソフトオフィス2010EXCELマクロについて質問させてください。 VBAマクロでマウス右クリック時にポップアップメニューを出し、 自作マクロを呼び出すようにしました。動作している。 このマクロを別PCのオフィス2013で動作させると、 マクロ内部ではポップアップメニューを作成動作している ようです(デバッグで通っていること確認)ようですが、 EXCEL画面上にはメニューが表示されません。 サンプルマクロは下記参照。 非互換または設定漏れがあるのでしょうか?   サンプルマクロ Sheet1 --------------------------------------- Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Application.CommandBars("Cell").Reset '右クリックメニューを初期設定に戻す Call set_RightMenu '右メニュー登録 End Sub Module1 --------------------------------------- Sub reset_RightMenu() ' '右クリックメニューを初期化 ' Application.CommandBars("Cell").Reset End Sub Public Sub set_RightMenu() ' ' 右クリックメニューを設定する ' Call reset_RightMenu '右クリックメニュー初期化 With Application.CommandBars("Cell") _ .Controls.Add() .BeginGroup = True .Caption = "menu0" .FaceId = 682 .OnAction = "menu0" End With With Application.CommandBars("Cell") _ .Controls.Add(Type:=msoControlPopup) .BeginGroup = True .Caption = "SubMenu" With .Controls.Add(Type:=msoControlButton) .Caption = "menu1" .FaceId = 931 .OnAction = "menu1" End With With .Controls.Add(Type:=msoControlButton) .Caption = "menu2" .FaceId = 931 .OnAction = "menu2" End With End With End Sub Sub menu0 MsgBox "****** Menu 0 *******" End Sub Sub menu1 MsgBox "****** Menu 1 *******" End Sub Sub menu2 MsgBox "****** Menu 2 *******" End Sub

  • Excell2010VBAmacro互換性

    マイクロソフトオフィス2010EXCELマクロについて質問させてください。 VBAマクロでマウス右クリック時にポップアップメニューを出し、 自作マクロを呼び出すようにしました。動作している。 このマクロを別PCのオフィス2013で動作させると、 マクロ内部ではポップアップメニューを作成動作している ようです(デバッグで通っていること確認)ようですが、 EXCEL画面上にはメニューが表示されません。 サンプルマクロは下記参照。 非互換または設定漏れがあるのでしょうか?   サンプルマクロ Sheet1 --------------------------------------- Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Application.CommandBars("Cell").Reset '右クリックメニューを初期設定に戻す Call set_RightMenu '右メニュー登録 End Sub Module1 --------------------------------------- Sub reset_RightMenu() ' '右クリックメニューを初期化 ' Application.CommandBars("Cell").Reset End Sub Public Sub set_RightMenu() ' ' 右クリックメニューを設定する ' Call reset_RightMenu '右クリックメニュー初期化 With Application.CommandBars("Cell") _ .Controls.Add() .BeginGroup = True .Caption = "menu0" .FaceId = 682 .OnAction = "menu0" End With With Application.CommandBars("Cell") _ .Controls.Add(Type:=msoControlPopup) .BeginGroup = True .Caption = "SubMenu" With .Controls.Add(Type:=msoControlButton) .Caption = "menu1" .FaceId = 931 .OnAction = "menu1" End With With .Controls.Add(Type:=msoControlButton) .Caption = "menu2" .FaceId = 931 .OnAction = "menu2" End With End With End Sub Sub menu0 MsgBox "****** Menu 0 *******" End Sub Sub menu1 MsgBox "****** Menu 1 *******" End Sub Sub menu2 MsgBox "****** Menu 2 *******" End Sub

  • 画像読み込み失敗の判定

    VBA Excel2007を使用しています。 画像をインポートするために、例えば、myPicuter = ActiveSheet.Shapes.AddPicture(filename, true, false, 0, 0, 100,100)を実行した際に、読み込みに失敗するとmyPictureとして添付のような表示が現れますが、このmyPicuterが画像でないことを判定する方法は有るでしょうか。 また、もし直接判定ができなければ、中の文字列を読み出して、その内容から判定する方法はあるでしょうか。

  • Autofilterについて2点質問

    Excel2007(VBA)を使用しています。 1 内容の書き換えや行の高さの変更を禁止して、フィルターとソートだけを許可することはできるでしょうか? 2 フィールド内に画像(Shape)が置かれている場合に、フィルターでその行が畳まれたときに画像も非表示にすることはできるでしょうか? 以上、よろしくお願いします。

  • 背景色のカウント方法

    いつもお世話になります。 Win7 Excell2010 です。 背景色のついたセルを関数でカウントしたく色々と調べました。 マクロでは知識不足の私なのでなんとか関数でと思ったのですができないようです。 何かいい方法で関数ではやはり無理でしよう カウントするには関数か若しくはVBAでご指導仰ぎたいです。 私としては申し訳ないですが知識がなく是非ご協力いただけないでしょうか。 お願いは、例えば B7 ~ B17 で “青色” B125=1 C7 ~ C17 で “青色” C125=2 D7 ~ D17 で “赤色” D125=1  のようにカウントができればいいです。 よろしくお願いします。

  • 背景色のカウント方法

    いつもお世話になります。 Win7 Excell2010 です。 背景色のついたセルを関数でカウントしたく色々と調べました。 マクロでは知識不足の私なのでなんとか関数でと思ったのですができないようです。 何かいい方法で関数ではやはり無理でしよう カウントするには関数か若しくはVBAでご指導仰ぎたいです。 私としては申し訳ないですが知識がなく是非ご協力いただけないでしょうか。 お願いは、例えば B7 ~ B17 で “青色” B125=1 C7 ~ C17 で “青色” C125=2 D7 ~ D17 で “赤色” D125=1  のようにカウントができればいいです。 よろしくお願いします。

  • 【エクセルVBA】特定のシートのみ検索したい

    VBA勉強中です。 フォルダにある複数のファイル(1ファイル内には複数シートあります)を順番に開けて検索をかけ、条件に合致した行をあるファイルへ転記・集約させるマクロを組みたいと思っています。 (条件は1番左の列が「○」であることです。) ネットや本を参考にしながら組んでみたのですが、「○」がない(シートの)行も転記されてしまい困っています。 (○があるシートは複数シートの内、1シートのみなのですが、○がないシートからも 「○があるシートの○がある行」と同じ行番号の行がが転記されているようです) 組んでみたマクロは以下のとおりです。 ------------------------------------------------ Sub 楕円1_Click() ActiveSheet.Range("A2:H30").ClearContents Dim ans, fn, wb, x, i, n, sh, myPath ans = "○" '条件 myPath = ThisWorkbook.Path & "\" fn = Dir(myPath & "*.xls") '選択したフォルダ内のExcelファイル Do Until fn = "" If fn <> ThisWorkbook.Name Then 'ファイルが当ファイル以外なら Set wb = Workbooks.Open(myPath & fn) '選択したファイルを開きます For Each sh In wb.Worksheets '各シートごとに x = sh.Cells(Rows.Count, 1).End(xlUp).Row '最終行取得 For i = 1 To x '1行目から最終行まで以下を実行します If Cells(i, 1) = ans Then '条件に合致するか検索 n = n + 1 With ThisWorkbook.Sheets("Sheet1") '転記 .Cells(n + 1, 1) = sh.Cells(i, "B") .Cells(n + 1, 2) = sh.Cells(i, "C") .Cells(n + 1, 3) = sh.Cells(i, "D") .Cells(n + 1, 4) = sh.Cells(i, "E") .Cells(n + 1, 5) = sh.Cells(i, "F") End With End If Next i Next sh wb.Close (False) '選択したファイルを閉じる End If fn = Dir() '次のファイルを検索 Set wb = Nothing Loop '繰り返し --------------------------------------------------------- このマクロでは各ファイルの全てのシートを検索していると思うのですが、 全シートを検索していることが問題でしょうか? 検索したいデータは特定のシートにのみ存在するので(全ファイル同じ名前のシートです) 特定のシートのみ検索してくれればそれで良いのですがどう変更すればよいかわかりません。 「For Each sh In wb.Worksheets '各シートごとに」 色々と調べてここを変更してみたのですが 何れもエラーとなり上手くいきませんでした。 どなたか上手く直す方法を教えて下さい。 宜しくお願いします。

  • Access2010のVBAで異体字の記述

    Windows7+Access2010のVBAで「JIS2004」の異体字168文字を記述していましたところ、不思議な事が起こりましたので質問です。 A.「屢」だけ「?」となり、記述できない。   それ以外の異体字は正常に記述できる。   現在は ChrW(&H5C62) と記述して逃げている。 A-1.なぜ記述できないのか、その原因は?     バグなのか、環境変更、あるいはアップデートで回避できるか? A-2.Windows7+Access2010で記述できるようにする方法はあるのか?     無いのなら、Windows8+Access2013などなら、問題ないのか? B.漢字をunicodeで指定するとした場合、異体字などに含まれる「叱(U+20B9F)」などは5桁コードだが、5桁以上のunicodeをVBAで表現したい場合はどのように処理するのか?   ChrWやAscWでは正しく処理できない。 ネット検索もしてみましたが、なかなかヒットせず、時間ばかりかかっています。 どなたかご存知の方がいらっしゃいましたらよろしくお願いします。

  • AccessVBAで特定の文字を含むフォルダを開く

    Accessのフォームにテキストボックスを設置し、 ボタンをクリックすると、 そのテキストボックスに入力されている言葉を含むフォルダを開きたいです。 Accessフォームで顧客名簿を作成していて、 サーバー上に顧客名ごと名前のついたフォルダがあります。 Dir関数を使って、 テキストボックスに「山田花子」と入力してボタンクリックすると、 「山田花子」を含むフォルダが存在するかどうかを メッセージボックスで知らせる、というところまではうまくできました。 コードは以下です。 Dim MyPath, MyFullPath MyPath = "\\×××\×××\×××\" MyFullPath = Dir(MyPath & "*" & [テキストボックス] & "*", vbDirectory) If MyFullPath = "" Then MsgBox "存在しません" Else MsgBox "存在します" End If End Sub この先、存在するならばそのフォルダを開くようにしたいです。 どうにかしてそのフォルダのフルパスを取得したいのですが その方法がわかりません。 そもそもDir関数は必要なかったのか・・・そのへんもよくわかりません。 ご教授お願いいたします!

  • Excelマクロの大量行の処理速度を上げたい

    Excel VBA 勉強中です。 Excel VBA を利用して大量の行の処理をしたいのですが、時間がかかってしまい、場合によっては固まってしまうので困っています。 色々と調べながら自分で作ってみたのですが、少量の行で試しに行った時にはきちんと動いたのですが、大量の行で行った時には固まってしまう(動かなくなってしまう)ので困っています。 転記先(シート1)には番号とコードが入っていて、基データ(シート2)にある番号とコードが一致した場合のみ基シート(シート2)にある日付を転記先(シート1)へ転記させたいと思っています。 ・シート1にもシート2にもそれぞれ、データが10000行ぐらいあります。 シート1(転記先) D列   E列    I列 番号   コード   日付←転記させたいセル 12345   123    4/30 23456   234 34567   345 シート2(基データ) B列   G列    I列 番号   コード   日付 23456   123    3/31 12345   123    4/30 45678   345    5/1 Dim sh1, sh2 Set sh1 = Sheets("シート1")  ’転記先 Set sh2 = Sheets("シート2")  ’基データ d = sh1.Range("A65536").End(xlUp).Row On Error Resume Next For i = 2 To d r = 2 d1 = sh1.Cells(i, 4) & sh1.Cells(i, 5) d2 = sh2.Cells(r, 2) & sh2.Cells(r, 7) Do While d2 <> "" If d1 = d2 Then sh1.Cells(i, 9) = sh2.Cells(r, 9) Exit Do End If r = r + 1 d2 = sh2.Cells(r, 2) & sh2.Cells(r, 7) Loop Next i どこがいけないのか、教えていただけると大変助かります。