cj_mover の回答履歴

全798件中661~680件表示
  • マクロを強制中断した場合の考慮

    ユーザーにエスケープでマクロを強制中断された場合の処理として Application.EnableCancelKey = xlErrorHandler の処理を追加し、デバックモードにならないようにしました。 しかし、エスケープキーをずっと押し続けた場合、上記の処理が追加されていても デバックモードになってしまいます。 デバックモードにならないようにするにはどうしたらよいのでしょう

  • エクセルVBAでNumLockキーの状態を確認する

    エクセルVBAでNumLockキーの状態を確認することはできますでしょうか? 検索の結果 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1352157463 のページを見つけましたが、 Private Declare Sub GetKeyboardState Lib "user32" (pbKeyState As Byte) でエラーになってしまいます。 なぜかと検索してみると、どうやら私のWindows が64ビットだからのようです。 64ビットに対応し、EXCEL、 エクセルVBAでNumLockキーの状態を確認し、offだったらonにするということが出来るでしょうか。 勿論、VBAでSendKeysを連発するとNamLockキーがOffになってしまう時があるということや、APIのSendInput 、keybd_eventイベントもあると思いますが、何が適当なのか、64ビットに対応させるのはどうするのか、教えて頂けるとありがたいです。よろしくお願いします。

  • 2010 excel マクロ 記号の変化

    エラー発生で強制終了になってしまいます。2007年のexcelで作成したものですが、2010だと強制終了になってしまいます。 内容は□をダブルクリックすると■になるように作っています。 記述は2003年からのマクロ記述なので、変化が必要なのでしょうか? Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'セルをダブルクリックすると、・→○→△→×→・と変更する。 Dim S1 As String Dim S2 As String Dim S01 As String Dim S02 As String Dim S03 As String Dim S04 As String S1 = "□" S2 = "■" S01 = "・" S02 = "○" S03 = "△" S04 = "×" On Error GoTo ERR_12 sCheckXY S1, S2 sCheckX1234 S01, S02, S03, S04 sChangeXY S1, S2 Exit Sub ERR_12: End End Sub Sub sChangeXY(X As String, Y As String) '選択セルに□があれば■に変える Dim Str0 As String 'str1の左端 Dim Str1 As String 'strの右側更新 Dim Str2 As String 'strの左側更新 Dim Str20 As String 'strの左側一部保存 Dim L As Long Dim M As Long Dim N As Long Str1 = ActiveCell.Text L = Len(Str1) Debug.Print L If L = 0 Then End End If For N = 1 To L Debug.Print Str2 Str0 = Left(Str1, 1) If Str0 = X Or N = L Then If Str20 <> "" Then If N = L Then Str20 = Str20 + Str0 End If If MsgBox(Str20 & "  はチェックしますか?", vbYesNo, "選択肢") = vbYes Then Str2 = Str2 + Replace(Str20, X, Y) Str20 = Str0 Else Str2 = Str2 + Replace(Str20, Y, X) Str20 = Str0 End If Else Str20 = Str0 End If Else Str20 = Str20 + Str0 End If Str1 = Right(Str1, L - N) Next N ActiveCell.Value = Str2 End Sub Sub sCheckXY(X As String, Y As String) '選択セルがXならY,YならXにチェックをかえる If ActiveCell.Text = X Then ActiveCell.Value = Y End ElseIf ActiveCell.Text = Y Then ActiveCell.Value = X End End If End Sub Sub sCheckX1234(X1 As String, X2 As String, X3 As String, X4 As String) '選択セルがXならY,YならXにチェックをかえる If ActiveCell.Text = X1 Then ActiveCell.Value = X2 End ElseIf ActiveCell.Text = X2 Then ActiveCell.Value = X3 End ElseIf ActiveCell.Text = X3 Then ActiveCell.Value = X4 End ElseIf ActiveCell.Text = X4 Then ActiveCell.Value = X1 End End If End Sub

  • 2010 excel マクロ 記号の変化

    エラー発生で強制終了になってしまいます。2007年のexcelで作成したものですが、2010だと強制終了になってしまいます。 内容は□をダブルクリックすると■になるように作っています。 記述は2003年からのマクロ記述なので、変化が必要なのでしょうか? Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'セルをダブルクリックすると、・→○→△→×→・と変更する。 Dim S1 As String Dim S2 As String Dim S01 As String Dim S02 As String Dim S03 As String Dim S04 As String S1 = "□" S2 = "■" S01 = "・" S02 = "○" S03 = "△" S04 = "×" On Error GoTo ERR_12 sCheckXY S1, S2 sCheckX1234 S01, S02, S03, S04 sChangeXY S1, S2 Exit Sub ERR_12: End End Sub Sub sChangeXY(X As String, Y As String) '選択セルに□があれば■に変える Dim Str0 As String 'str1の左端 Dim Str1 As String 'strの右側更新 Dim Str2 As String 'strの左側更新 Dim Str20 As String 'strの左側一部保存 Dim L As Long Dim M As Long Dim N As Long Str1 = ActiveCell.Text L = Len(Str1) Debug.Print L If L = 0 Then End End If For N = 1 To L Debug.Print Str2 Str0 = Left(Str1, 1) If Str0 = X Or N = L Then If Str20 <> "" Then If N = L Then Str20 = Str20 + Str0 End If If MsgBox(Str20 & "  はチェックしますか?", vbYesNo, "選択肢") = vbYes Then Str2 = Str2 + Replace(Str20, X, Y) Str20 = Str0 Else Str2 = Str2 + Replace(Str20, Y, X) Str20 = Str0 End If Else Str20 = Str0 End If Else Str20 = Str20 + Str0 End If Str1 = Right(Str1, L - N) Next N ActiveCell.Value = Str2 End Sub Sub sCheckXY(X As String, Y As String) '選択セルがXならY,YならXにチェックをかえる If ActiveCell.Text = X Then ActiveCell.Value = Y End ElseIf ActiveCell.Text = Y Then ActiveCell.Value = X End End If End Sub Sub sCheckX1234(X1 As String, X2 As String, X3 As String, X4 As String) '選択セルがXならY,YならXにチェックをかえる If ActiveCell.Text = X1 Then ActiveCell.Value = X2 End ElseIf ActiveCell.Text = X2 Then ActiveCell.Value = X3 End ElseIf ActiveCell.Text = X3 Then ActiveCell.Value = X4 End ElseIf ActiveCell.Text = X4 Then ActiveCell.Value = X1 End End If End Sub

  • エクセルの空白の種類?

    エクセルで入力フォームを作成し、一覧に登録していくといったツールを作成しています。 その際、フォームから空白欄を選択した場合と、セル上でデータをdeleteした場合に、 空白欄の並び替えの結果が異なってきました。 フォーム:昇順にすると空白欄が上にくる セル上:昇順にすると空白欄が下にくる フォームの選択元は別シートにリストをもっています。 空白行はなにも入っていない行を指定してあります。 なぜdeleteした場合と結果か異なるのでしょうか。

  • Excelで行番号に応じての処理

    よろしくお願いします。 C列に3行ごとに規則正しくみっちり1000行ほどの文字列があります。 1 品番 2 商品名 3 備考 4 品番 5 商品名 6 備考 7 品番 自動的に2つの処理をしたいのですが、わからなくて困っています。 いずれもC列をD列にコピーするときの処理です。 1) 行番号が3の倍数のときにはコピーせず(空白)、1と2との時はコピー。 ※品番と商品名だけをコピー 2) 品番だけ、フォントを変えたい よろしくお願いします。※Excel2007です

  • Excelで行番号に応じての処理

    よろしくお願いします。 C列に3行ごとに規則正しくみっちり1000行ほどの文字列があります。 1 品番 2 商品名 3 備考 4 品番 5 商品名 6 備考 7 品番 自動的に2つの処理をしたいのですが、わからなくて困っています。 いずれもC列をD列にコピーするときの処理です。 1) 行番号が3の倍数のときにはコピーせず(空白)、1と2との時はコピー。 ※品番と商品名だけをコピー 2) 品番だけ、フォントを変えたい よろしくお願いします。※Excel2007です

  • VBAを埋め込んだエクセルのシートの複製

    VBAを埋め込んだエクセルのシートを複製したら、ボタン類が全て無くなってしまいまいした。 Excel2010です。Excel2003では、複製してもボタンは残ります。 何か設定があるのでしょうか?

  • VBAを埋め込んだエクセルのシートの複製

    VBAを埋め込んだエクセルのシートを複製したら、ボタン類が全て無くなってしまいまいした。 Excel2010です。Excel2003では、複製してもボタンは残ります。 何か設定があるのでしょうか?

  • エクセル2007のVBAでオートフィルタのチェック

    エクセル2007のVBAでオートフィルタのチェックを閾値以上の%のみに入れたいのです。  ユーザー設定フィルタでは視覚的に解りつらい為、フィルタの▽をクリックした時に、チェックがされている事を確認したいのです。 【シート1の内容】 セルA1から行方向に数字の1~3 セルB1から行方向に、値1、値2、% セルA3~Bnは列方向に、整数 セルC3から列方向に、“=A3/B3”が入力されており、書式は パーセンテージ(小数点以下の桁数は“1”) セルD1に 閾値として 10.5%・・・書式はC3に同じ 【目的】 動きとしては、閾値以上の結果を出すつもりで書きました。 【質問】 フィルタがかかった▽をクリックした時に、1行、2行及びC列の10.5%以上のチェックボックスにチェックを入れたいのです。 しかし、下記コードの .AutoFilter Field:=3, Criteria1:=Array("%") _ , Operator:=xlFilterValues, Criteria2:=Array(TargetCD) でエラーが出てしまいます。 実行時エラー '1004': Range クラスの AutoFilter メソッドが失敗しました。 Sub Threshol() Dim MaxRow As Integer Dim TargetCD Dim CDDiff As Integer Dim MinCD As Single Dim MaxCD As Single Dim i As Integer Dim j As Single MaxRow = Range("C1").End(xlDown).Row With ActiveSheet.Range(Cells(3, 3), Cells(MaxRow, 3)) MinCD = ThisWorkbook.Worksheets(1).Range("D1").Value * 100 MaxCD = Application.Round(Application.Max(.Cells) * 100, 1) CDDiff = (MaxCD - MinCD) * 10 ReDim TargetCD(1 To CDDiff + 1) For i = 1 To UBound(TargetCD) TargetCD(i) = FormatPercent(MinCD / 100 + j, 1) j = Format(j + 0.001, "#.###") Next .AutoFilter Field:=3, Criteria1:=Array("%") _ , Operator:=xlFilterValues, Criteria2:=Array(TargetCD) End With End Sub 皆様、良いご助言を宜しくお願い致します。

  • エクセル2007のVBAでオートフィルタのチェック

    エクセル2007のVBAでオートフィルタのチェックを閾値以上の%のみに入れたいのです。  ユーザー設定フィルタでは視覚的に解りつらい為、フィルタの▽をクリックした時に、チェックがされている事を確認したいのです。 【シート1の内容】 セルA1から行方向に数字の1~3 セルB1から行方向に、値1、値2、% セルA3~Bnは列方向に、整数 セルC3から列方向に、“=A3/B3”が入力されており、書式は パーセンテージ(小数点以下の桁数は“1”) セルD1に 閾値として 10.5%・・・書式はC3に同じ 【目的】 動きとしては、閾値以上の結果を出すつもりで書きました。 【質問】 フィルタがかかった▽をクリックした時に、1行、2行及びC列の10.5%以上のチェックボックスにチェックを入れたいのです。 しかし、下記コードの .AutoFilter Field:=3, Criteria1:=Array("%") _ , Operator:=xlFilterValues, Criteria2:=Array(TargetCD) でエラーが出てしまいます。 実行時エラー '1004': Range クラスの AutoFilter メソッドが失敗しました。 Sub Threshol() Dim MaxRow As Integer Dim TargetCD Dim CDDiff As Integer Dim MinCD As Single Dim MaxCD As Single Dim i As Integer Dim j As Single MaxRow = Range("C1").End(xlDown).Row With ActiveSheet.Range(Cells(3, 3), Cells(MaxRow, 3)) MinCD = ThisWorkbook.Worksheets(1).Range("D1").Value * 100 MaxCD = Application.Round(Application.Max(.Cells) * 100, 1) CDDiff = (MaxCD - MinCD) * 10 ReDim TargetCD(1 To CDDiff + 1) For i = 1 To UBound(TargetCD) TargetCD(i) = FormatPercent(MinCD / 100 + j, 1) j = Format(j + 0.001, "#.###") Next .AutoFilter Field:=3, Criteria1:=Array("%") _ , Operator:=xlFilterValues, Criteria2:=Array(TargetCD) End With End Sub 皆様、良いご助言を宜しくお願い致します。

  • エクセル2007のVBAでオートフィルタのチェック

    エクセル2007のVBAでオートフィルタのチェックを閾値以上の%のみに入れたいのです。  ユーザー設定フィルタでは視覚的に解りつらい為、フィルタの▽をクリックした時に、チェックがされている事を確認したいのです。 【シート1の内容】 セルA1から行方向に数字の1~3 セルB1から行方向に、値1、値2、% セルA3~Bnは列方向に、整数 セルC3から列方向に、“=A3/B3”が入力されており、書式は パーセンテージ(小数点以下の桁数は“1”) セルD1に 閾値として 10.5%・・・書式はC3に同じ 【目的】 動きとしては、閾値以上の結果を出すつもりで書きました。 【質問】 フィルタがかかった▽をクリックした時に、1行、2行及びC列の10.5%以上のチェックボックスにチェックを入れたいのです。 しかし、下記コードの .AutoFilter Field:=3, Criteria1:=Array("%") _ , Operator:=xlFilterValues, Criteria2:=Array(TargetCD) でエラーが出てしまいます。 実行時エラー '1004': Range クラスの AutoFilter メソッドが失敗しました。 Sub Threshol() Dim MaxRow As Integer Dim TargetCD Dim CDDiff As Integer Dim MinCD As Single Dim MaxCD As Single Dim i As Integer Dim j As Single MaxRow = Range("C1").End(xlDown).Row With ActiveSheet.Range(Cells(3, 3), Cells(MaxRow, 3)) MinCD = ThisWorkbook.Worksheets(1).Range("D1").Value * 100 MaxCD = Application.Round(Application.Max(.Cells) * 100, 1) CDDiff = (MaxCD - MinCD) * 10 ReDim TargetCD(1 To CDDiff + 1) For i = 1 To UBound(TargetCD) TargetCD(i) = FormatPercent(MinCD / 100 + j, 1) j = Format(j + 0.001, "#.###") Next .AutoFilter Field:=3, Criteria1:=Array("%") _ , Operator:=xlFilterValues, Criteria2:=Array(TargetCD) End With End Sub 皆様、良いご助言を宜しくお願い致します。

  • エクセル2007のVBAでオートフィルタのチェック

    エクセル2007のVBAでオートフィルタのチェックを閾値以上の%のみに入れたいのです。  ユーザー設定フィルタでは視覚的に解りつらい為、フィルタの▽をクリックした時に、チェックがされている事を確認したいのです。 【シート1の内容】 セルA1から行方向に数字の1~3 セルB1から行方向に、値1、値2、% セルA3~Bnは列方向に、整数 セルC3から列方向に、“=A3/B3”が入力されており、書式は パーセンテージ(小数点以下の桁数は“1”) セルD1に 閾値として 10.5%・・・書式はC3に同じ 【目的】 動きとしては、閾値以上の結果を出すつもりで書きました。 【質問】 フィルタがかかった▽をクリックした時に、1行、2行及びC列の10.5%以上のチェックボックスにチェックを入れたいのです。 しかし、下記コードの .AutoFilter Field:=3, Criteria1:=Array("%") _ , Operator:=xlFilterValues, Criteria2:=Array(TargetCD) でエラーが出てしまいます。 実行時エラー '1004': Range クラスの AutoFilter メソッドが失敗しました。 Sub Threshol() Dim MaxRow As Integer Dim TargetCD Dim CDDiff As Integer Dim MinCD As Single Dim MaxCD As Single Dim i As Integer Dim j As Single MaxRow = Range("C1").End(xlDown).Row With ActiveSheet.Range(Cells(3, 3), Cells(MaxRow, 3)) MinCD = ThisWorkbook.Worksheets(1).Range("D1").Value * 100 MaxCD = Application.Round(Application.Max(.Cells) * 100, 1) CDDiff = (MaxCD - MinCD) * 10 ReDim TargetCD(1 To CDDiff + 1) For i = 1 To UBound(TargetCD) TargetCD(i) = FormatPercent(MinCD / 100 + j, 1) j = Format(j + 0.001, "#.###") Next .AutoFilter Field:=3, Criteria1:=Array("%") _ , Operator:=xlFilterValues, Criteria2:=Array(TargetCD) End With End Sub 皆様、良いご助言を宜しくお願い致します。

  • テキスト・データをエクセルの結合セルに貼り付けたい

    メモ帳などのテキストデータをエクセルに貼り付ける際,文字列をコピーしたあと,エクセルに「貼り付け」(Ctrl + V)で行なえますが,セルが結合された状態で「貼り付け」(Ctrl + V)を行なうと,エラーメッセージが出てしまい,一度F2キーを押したあとに(Ctrl + V)を行なわないと貼り付けができません。違う方法はありませんでしょうか?何かコマンドがあれば,クイック・アクセス・ツール・バーに登録するなどして簡略化したいと考えているのですが…。

  • テキスト・データをエクセルの結合セルに貼り付けたい

    メモ帳などのテキストデータをエクセルに貼り付ける際,文字列をコピーしたあと,エクセルに「貼り付け」(Ctrl + V)で行なえますが,セルが結合された状態で「貼り付け」(Ctrl + V)を行なうと,エラーメッセージが出てしまい,一度F2キーを押したあとに(Ctrl + V)を行なわないと貼り付けができません。違う方法はありませんでしょうか?何かコマンドがあれば,クイック・アクセス・ツール・バーに登録するなどして簡略化したいと考えているのですが…。

  • エクセル2010 余白の設定について

    以前、2003を使っていた時は、プレビューから余白をクリックすると、用紙のまわりにしるしがついて カーソルを動かすと余白が変えられたのですが、2010では、数字で変えるようになっていますね。 2003のようなやり方はできないのでしょうか?教えてください。

  • テキスト・データをエクセルの結合セルに貼り付けたい

    メモ帳などのテキストデータをエクセルに貼り付ける際,文字列をコピーしたあと,エクセルに「貼り付け」(Ctrl + V)で行なえますが,セルが結合された状態で「貼り付け」(Ctrl + V)を行なうと,エラーメッセージが出てしまい,一度F2キーを押したあとに(Ctrl + V)を行なわないと貼り付けができません。違う方法はありませんでしょうか?何かコマンドがあれば,クイック・アクセス・ツール・バーに登録するなどして簡略化したいと考えているのですが…。

  • ExcelVBAのデータの連続する個数の検索

    A~Fの各列ごとに、121以上の数字が連続する個数を出力し、出力したデータの最大値を求めたいのですが、どうやって式を組んだらいいか、わかりません。 アドバイスいただけましたら幸いです。 A / B / C / D / E / F 118.19 / 118.11 / 118.22 / 118.20 / 118.20 / 118.74 120.93 / 120.86 / 120.96 / 120.92 / 120.92 / 121.44 123.45 / 123.35 / 123.45 / 123.43 / 123.43 / 123.88 120.97 / 121.04 / 120.94 / 121.00 / 120.97 / 120.93 118.57 / 119.48 / 118.69 / 121.52 / 118.48 / 119.69 123.48 / 123.35 / 123.44 / 123.43 / 123.41 / 123.61 123.59 / 120.47 / 123.58 / 123.57 / 123.57 / 123.74 連続する個数 1コ / 2コ / 1コ / 5コ / 1コ / 2コ 2コ / 1コ / 2コ / - / 2コ / 2コ 最大値 2コ /2コ /2コ /5コ /2コ /2コ

  • VBAの複数条件の検索について

    お世話になります。 VBAでEvaluate("SUMPRODUCT((棚卸!$A$1:$A$300=LEFT(C" & i & ",2))*(ISNUMBER(FIND(LEFT(D$1,3),棚卸!$B$1:$B$300)))*(ISNUMBER(FIND(D$2,棚卸!$C$1:$C$300))),棚卸!$F$1:$F$300)")という構文があります。 現在困っていることは、ISNUMBER(FIND(LEFT(D$1,3)のD$1をE$1、F$1、G$1としたいのですが、どのようにすればよいか分りません。 初歩的な質問で申し訳ありませんが、ご教示のほど宜しくお願いいたします。

  • エクセル あるシートから別シートへ貼り付け

    どなたかお助け下されば、大変ありがたく存じます! エクセルに関する質問です。 コピー元エクセルシートのセル(B2、B3、B4、B5・・・B100)に数値が入力されています。 その値を、別シートのセル(C2、C25、C48、C71、・・・C2256、C2279)に貼り付けたい場合、 何か良い方法は無いものでしょうか。 貼り付け先となるセルは、等差数列的に決まっており、 フィルタでその指定セル(C2、C25、C48・・・C2256、C2279)を抽出することも可能です。 単純に、貼り付け先セルへ、C2セル「=コピー元シート!$B2」と入力すると、 C25「=コピー元シート!$B25」、C48「=コピー元シート!$B48」・・・となってしまい、 うまく貼り付けることが出来ません。 理想は、 C2セル「=コピー元シート!$B2」、C25「=コピー元シート!$B3」、 C48「=コピー元シート!$B4」、・・・、C2279「=コピー元シート!$B100」としたいのです。 (コピー元)→(貼り付け先) B2 → C2 B3 → C25 B4 → C48 B5 → C71 B6 → C93 ・・・ B99 → C2256 B100 → C2279 何か良い方法があればお教え願えますでしょうか。 どうかよろしくお願い申し上げます!!