Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


140 / 3841 ページ ←次へ | 前へ→

【79665】Re:実行時エラー1004-Activeメソッドが失...
質問  ひなまつり  - 18/3/2(金) 10:14 -

引用なし
パスワード
   亀マスターさん
おはようございます。回答をいただき、ありがとうございました。

ご指摘の通りファイルはネットワーク上にあります。
『インタネットから取得したファイルに対して保護されたビューを
 有効にする』のチェックを外したいところですが、セキュリティに
対して非常に厳しい会社のため、保護ビューの状態で使わざるを得ません。

ご教授いただいたコードを入れてみましたが、エラーが出ました。
お手数ですが、ご確認をお願いいたします。


Private Sub Workbook_Open()
 

Dim 開始日 As String
Dim 終了日 As String

Application.ProtectedViewWindows(1).Workbook←ご教授いただいたコード 

開始日 = Format(Worksheets("ABC").Range("F3"), "yyyy/mm/dd")
終了日 = Format(Worksheets("ABC").Range("G3"), "yyyy/mm/dd")

Worksheets("ABC").Activate

Worksheets("ABC").Range("A5:M10000").AutoFilter Field:=4, _
Criteria1:=">=" & 開始日, _
Operator:=xlAnd, _
Criteria2:="<=" & 終了日

Worksheets("ABC").Activate
   Worksheets("ABC").Range("A5:M10000") _
       .Sort Key1:=Range("D5"), order1:=xlAscending, _
          Key2:=Range("F5"), order2:=xlAscending, _
          Key3:=Range("B5"), order3:=xlAscending


開始日 = Format(Worksheets("XYZ").Range("F3"), "yyyy/mm/dd")
終了日 = Format(Worksheets("XYZ").Range("G3"), "yyyy/mm/dd")


Worksheets("XYZ").Activate

Worksheets("XYZ").Range("A5:M10000").AutoFilter Field:=4, _
Criteria1:=">=" & 開始日, _
Operator:=xlAnd, _
Criteria2:="<=" & 終了日

   Worksheets("XYZ").Range("A5:M10000") _
       .Sort Key1:=Range("D5"), order1:=xlAscending, _
          Key2:=Range("F5"), order2:=xlAscending, _
          Key3:=Range("B5"), order3:=xlAscending
         
   
End Sub
・ツリー全体表示

【79664】Re:オプションボタンによるテキストボッ...
発言  マナ  - 18/3/1(木) 23:23 -

引用なし
パスワード
   ▼ボタン さん:

>ちなみに非表示は文字が薄くなるだけで
>見えなくなるのとは違うんですね。
>完全に消えたようにすることはできないでしょうか?


非表示は、Enabled でなく、Visible です。
・ツリー全体表示

【79663】Re:色つきを立て棒表示にしたい
発言  マナ  - 18/3/1(木) 23:17 -

引用なし
パスワード
   ▼トキノハジメ さん:
納得できたわけではありませんが
マクロなら、範囲内をループして、
1セルずつ判定して罫線を設定すればよい思います。

罫線の設定は「マクロの記録」を参考にするとよいです。
・ツリー全体表示

【79662】Re:実行時エラー1004-Activeメソッドが失...
発言  亀マスター  - 18/3/1(木) 20:07 -

引用なし
パスワード
   私もWord VBAで似たようなことになった覚えがあるのですが、どうやら、保護ビューを解除した直後にWorkbook_Openイベントが発生し、その時点では保護ビューウィンドウだけを含むコレクションに含まれた状態になっていて、通常のWorkbooksコレクションに含まれない状態になっているようです。そのせいで、普通にWorksheetsを使おうとしても、該当のシートが見つからない状態になっているのではないでしょうか。

保護ビューで開くということは、該当のファイルはインターネット上のものかネットワーク上のものでしょうか?過去にそういったところからダウンロードしてきてファイルの保護が有効になっているなら、ファイルのプロパティからブロックを解除すれば解決すると思います。

何らかの事情で、保護ビューで開くのを止められないというのであれば・・・

Application.ProtectedViewWindows(1).Workbook

で保護ビュー状態のブックを指定できますので、これを使えばなんとかなる気がします。

明日、出勤すれば私が仕事でやっていて対応したときのコードがあるはずなので、わからなければまた質問してください。
・ツリー全体表示

【79661】オプションボタンによるテキストボックス...
質問  ボタン  - 18/3/1(木) 16:51 -

引用なし
パスワード
   お世話になります。

ユーザフォーム1にオプションボタン1〜5があります。

たとえばオプションボタン1を選ぶと

Label1とTextBox1が非表示から表示に変わり
TextBoxは入力できるようにしたいです。
またオプションボタン2を選ぶと
Label1とTextBox1が非表示になり
Label2とTextBox2が表示され入力できるというのを目指してます。

最初は非表示で1を選ぶと表示に切り替わり
入力はできるのですが
別のを選んでもLabel1とTextBox1が非表示に切り替わりません。

違うのを選ぶ(1を選択していない状態)と非表示にする
というのが足りないと思うのですが…ご教授いただければ幸いです。

OptionButton1 に対してLabel1とTextBox1
OptionButton2 に対してLabel2とTextBox2…としています。
またLabelとTextBoxはすべてプロパティでEnabled = Falseに設定してあります。


Private Sub OptionButton1_Click()

If OptionButton1.Value = True Then

Label1.Enabled = True
TextBox1.Enabled = True

Else
Label1.Enabled = False
TextBox2.Enabled = False

End If

End Sub

※OptionButton2にはこれの2バージョンとしています。


ちなみに非表示は文字が薄くなるだけで
見えなくなるのとは違うんですね。
完全に消えたようにすることはできないでしょうか?
・ツリー全体表示

【79660】Re:住所をいい感じに区切る
お礼  りった  - 18/3/1(木) 16:40 -

引用なし
パスワード
   追伸来ていることに今気が付きました。

下記で出来ました。

for 行1 1〜全文節数
for 行2 1〜全文節数
 for 行3 1〜全文節数
  for 行4 1〜全文節数
  合計文節数チェック
  ベストスコアだったら区切り方保存
  next
 next
next
next

スコア = 最大行の文字数 * 1000000000 + 2位の文字数 * 1000000 + 3位の文字数
・ツリー全体表示

【79659】実行時エラー1004-Activeメソッドが失敗...
質問  ひなまつり  - 18/3/1(木) 14:58 -

引用なし
パスワード
   こんにちは。
お世話になります。

昨日EXCEL2007から2010へのバージョンアップがありました。
今朝EXCELを開いたところ『保護されたビュー』が表示され、
『編集を有効にする』と、下記のエラーメッセージが出てしまします。

<実行時エラー1004>
『WorksheetクラスのActivateメソッドが失敗しました』

このエラーを解除したいのですが、どのようにすれば良いのでしょうか。

Worksheets("ABC").Activateというコードを入れてみたのですが…

ご教授をいただければ助かります。
どうぞよろしくお願い申し上げます。

-----------------------------------------------------------

Private Sub Workbook_Open()
 

Dim 開始日 As String
Dim 終了日 As String


開始日 = Format(Worksheets("ABC").Range("F3"), "yyyy/mm/dd")
終了日 = Format(Worksheets("ABC").Range("G3"), "yyyy/mm/dd")

Worksheets("ABC").Activate ←これを追加

Worksheets("ABC").Range("A5:M10000").AutoFilter Field:=4, _
Criteria1:=">=" & 開始日, _
Operator:=xlAnd, _
Criteria2:="<=" & 終了日


   Worksheets("ABC").Range("A5:M10000") _
       .Sort Key1:=Range("D5"), order1:=xlAscending, _
          Key2:=Range("F5"), order2:=xlAscending, _
          Key3:=Range("B5"), order3:=xlAscending
            

開始日 = Format(Worksheets("XYZ").Range("F3"), "yyyy/mm/dd")
終了日 = Format(Worksheets("XYZ").Range("G3"), "yyyy/mm/dd")

Worksheets("XYZ").Activate ←これを追加


Worksheets("XYZ").Range("A5:M10000").AutoFilter Field:=4, _
Criteria1:=">=" & 開始日, _
Operator:=xlAnd, _
Criteria2:="<=" & 終了日

Worksheets("XYZ").Activate
   Worksheets("XYZ").Range("A5:M10000") _
       .Sort Key1:=Range("D5"), order1:=xlAscending, _
          Key2:=Range("F5"), order2:=xlAscending, _
          Key3:=Range("B5"), order3:=xlAscending
         
   
End Sub
・ツリー全体表示

【79658】Re:色つきを立て棒表示にしたい
質問  トキノハジメ  - 18/3/1(木) 11:12 -

引用なし
パスワード
   ▼マナ さん:
お返事有難うございます。
データー処理をVBAで処理している中で条件にて色の付けているセルに色を付けずに
セルの右縦に色つきの縦線できれば太い線をと考えています。
よろしくおねがいいたします。
・ツリー全体表示

【79657】Re:セルの数式の結果を別のセルに表示さ...
お礼  orien  - 18/2/28(水) 21:38 -

引用なし
パスワード
   ▼亀マスター さん:
>こんなのでどうでしょうか?
>
>セルに入力した数式を別のセルで計算する(Office TANAKA)
>ht tp://officetanaka.net/excel/function/tips/tips57.htm

有り難うございます。
感謝申し上げます。orien
・ツリー全体表示

【79656】Re:セルの数式の結果を別のセルに表示さ...
回答  亀マスター  - 18/2/28(水) 21:07 -

引用なし
パスワード
   こんなのでどうでしょうか?

セルに入力した数式を別のセルで計算する(Office TANAKA)
ht tp://officetanaka.net/excel/function/tips/tips57.htm
・ツリー全体表示

【79655】セルの数式の結果を別のセルに表示させた...
質問  orien  - 18/2/28(水) 20:27 -

引用なし
パスワード
   たとえば セルA1に2*3を入力し セルB1に計算結果6を表示させるにはどうしたら良いのですか。あるセルに計算式を入し、別のセルにその数式の結果を表示したいと言うことです。
公開のanswer関数を利用していたのですが、WIN7で利用できなくなりましたので。よろしくお願いします。
・ツリー全体表示

【79654】Re:指定期間でログインしたユーザーを知...
お礼  amatsuno  - 18/2/27(火) 17:56 -

引用なし
パスワード
   ▼亀マスター さん:

ありがとうございます。
Debug.Print
を使用して何箇所か確認してみます
・ツリー全体表示

【79653】Re:色つきを立て棒表示にしたい
発言  γ  - 18/2/27(火) 6:58 -

引用なし
パスワード
   >これを枠の右に太い縦棒て゛あらわしたいのですが
これは罫線とか、アイコンセットのことを言っているのですか?
それならご自分でマクロ記録をとればよいでしょう。
(すでにご指摘があるように、マクロにする必要すら乏しい気がしますが)

それとも、なんらかの自作の図形を作成したいということですか?
後者なんでしょうか。
条件付き書式なのですから、図形は操作の対象になりません。
マクロであれば何でもできるわけではありません。
条件付き書式の枠組みを超えることはできません。
・ツリー全体表示

【79652】Re:色つきを立て棒表示にしたい
発言  マナ  - 18/2/26(月) 21:03 -

引用なし
パスワード
   ▼トキノハジメ さん:

回答でありません。

>下記のコードで特定の数字に色を付けているのですが、

なぜ、マクロで実行しているのでしょうか。
手作業で設定できない理由はあるのでしょうか。
・ツリー全体表示

【79651】Re:指定期間でログインしたユーザーを知...
発言  亀マスター  - 18/2/26(月) 18:53 -

引用なし
パスワード
   >csvのレコード数が少ないときには総定数が抽出されましたので、PCスペックのほうが原因のような気がしています
この手のコードでPCスペックが低いからと誤作動を起こすというのはあまり考えられませんね。絶対とは言えませんが。

現状では私にはすぐにわからないのですが、どこの段階でおかしくなっているのか、情報収集してみてはどうでしょうか。

例えば、処理件数に影響しそうな
count_daily
count_master
あたりが狙った値になっているのかを確認する。
(ブレイクポイントを設定するか、Stopステートメントで止めてローカルウインドで確認する、あるいはDebug.Printでイミディエイトウインドに出力する)

あと、最終的に出力される「期間内利用ユーザ」シートだけでなく、一時処理に使っている「利用ユーザ一時保管」が狙った件数になっているか、「取り込みCSV」シートの処理で.AutoFilterMode = Falseをしないで、フィルターがかかった状態が狙った件数になっているのか確認する。

などを試してみてください。
・ツリー全体表示

【79650】Re:指定期間でログインしたユーザーを知...
発言  amatsuno  - 18/2/26(月) 16:07 -

引用なし
パスワード
   ▼亀マスター さん:
>思っていた件数にならないとのことですが、具体的にはどのシートで何件抽出されるのが狙いでしょうか。

 ⇒csvの情報はそれぞれ40000件と20000件なのですが、
  「期間内利用ユーザ」で8000件程度出力されるはずが、2000件程度になっていました
(ただ、csvのレコード数が少ないときには総定数が抽出されましたので、PCスペックのほうが原因のような気がしています。投稿文字量の制限でデータをすべて記載でなくで申し訳ございません)


>その他、新しく追加した「O365契約ユーザ」と「O365ユーザマスタ情報」ではどのような情報が抽出されることを想定しているのでしょうか。

 ⇒基本はまったく同一の処理を実施しています(そのため、質問では1つで記載させていただきました)

使用方法は以下の構成で考えています

期間内利用ユーザの量 ÷ O365ユーザマスタ情報 × 100 =使用%

期間内利用ユーザの量 ⇒ 期間内にツールを使用した人数
O365ユーザマスタ情報の量 ⇒ マスタに登録されている全人数


「利用ユーザ一時保管」と「O365契約ユーザ」はそれぞれ、
「取り込みCSV」から指定期間内の利用ユーザのみを抽出した結果を出力していて、
「期間内利用ユーザ」と「O365ユーザマスタ情報」で、それらをマスタから抽出しています


以上となります
・ツリー全体表示

【79649】色つきを立て棒表示にしたい
質問  トキノハジメ  - 18/2/26(月) 13:33 -

引用なし
パスワード
   いつもお世話になります。

下記のコードで特定の数字に色を付けているのですが、これを枠の右に太い縦棒て゛あらわしたいのですが。おしえてください。

With Range("E11:U11").FormatCondition
  With.Add(Type:=xlcellval,Operator:=xlBeetween,_
  Formura:="1.8",Farmura:="1.99")
    .Interior.ColorIndex = 8
  End With
End With

宜しくお願い致します。  
・ツリー全体表示

【79648】Re:オートフィルター抽出行の削除
お礼  nao  - 18/2/26(月) 10:02 -

引用なし
パスワード
   おはようございます。
ご回答ありがとうございます!

助かりました^^v
・ツリー全体表示

【79647】Re:住所をいい感じに区切る
回答  γ  - 18/2/24(土) 10:43 -

引用なし
パスワード
   カンマで文節を区切ったうえで、それぞれの文字数をカウントしておきます。

4行になるものとし、各行の最後の文節のインデックスを、定めればよいわけです。
それらを k1,k2,k3,n (n はこの場合6です)とすると、
5個のなかから3個を取り出す組み合わせですから、10ケースです。
それを しらみつぶし に検証すればよいだけです。

例えば、こんな感じ。

  '組み合わせを列挙。
  '4行になるものとし、各行に含まれる最後の文節のインデックスを、
  'それぞれ、k1,k2,k3,n として、すべての組み合わせを列挙します。
  
  myMin = 1000
  For k1 = 1 To n - 3
    For k2 = k1 + 1 To n - 2
      For k3 = k2 + 1 To n - 1
        '各区分の長さの最大値を最小となる組み合わせを調べます
        以下略

もう解決したと思いますが。
・ツリー全体表示

【79646】Re:指定期間でログインしたユーザーを知...
発言  亀マスター  - 18/2/23(金) 22:55 -

引用なし
パスワード
   思っていた件数にならないとのことですが、具体的にはどのシートで何件抽出されるのが狙いでしょうか。

私が手元で試したところ、提示していただいたサンプルデータでは、「期間内利用ユーザ」シートに12件+13行目にタイトル行が入った状態になりました。
「期間内利用ユーザ」シートには、指定された期間に該当し、「利用ユーザ一時保管」シートで4列目がFALSEになっているものを抽出するのだと思いますが、その件がおかしいということであれば、「マスタCSV」シートにないメールアドレスが「取り込みCSV」にあるからだと思います。

その他、新しく追加した「O365契約ユーザ」と「O365ユーザマスタ情報」ではどのような情報が抽出されることを想定しているのでしょうか。
・ツリー全体表示

140 / 3841 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free