• ベストアンサー

VBAマクロについて教えてください

続けての質問で恐縮です。 次の意味がわかりません。VBAのヘルプでもでてきません。 どなたか教えてください。ちょっとほかの部分を手直しするのに、これはどうしたら良いものか判断がつきません。 userinterfaceonly:=False よろしくお願いします。

  • maamaa
  • お礼率85% (274/322)

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

ProtectメソッドのUserInterfaceOnlyでしょうか。解説には、 『 UserInterfaceOnly 省略可能です。バリアント型 (Variant) の値を指定します。True を指定すると、画面上からの変更は保護されますが、マクロからの変更は保護されません。この引数を省略すると、マクロからも、画面上も変更することができなくなります。 引数 UserInterfaceOnly に True を設定した Protect メソッドをブックのワークシートに適用した場合、保存して閉じた後でもう一度開いたブックに対しては、画面上からもマクロからも変更ができなくなります。マクロからの変更を可能にするためには、引数 UserInterfaceOnly に True を設定した Protect メソッドを再び適用する必要があります。 』とあります。 VBE画面で、表示→オブジェクトブラウザで『protect』を検索して出てきます。

maamaa
質問者

お礼

nishi6さん、詳しく説明していただきましてありがとうございました。 おかげさまでちょっと前にやっと完成しました。 もうくたくたです。VBAはいまだによく理解できてないので説明不足の点もあったかと思います。お許しください。 教えていただいたことは印刷して大切に保存します。

maamaa
質問者

補足

nishi6さんありがとうございました。 これから仕事ですので明日また改めてお礼申し上げます。

その他の回答 (3)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.4

再び、maruru01です。 おそらく、No.3の人の方が正しいのでそちらを信用して下さい。 どちらにしろ、Microsoftのホームページで検索出来ます。 では。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 とりあえず、何のVBAか書きましょう。それと、前後の詳細も。いきなりこの1行ではわからないです。 (続けての質問ということでも、毎回書くのが常識です。) 確かにヘルプにはなかったので、Microsoftのホームページで「userinterfaceonly」で検索したらいくつかヒットしました。 そのなかで今回の件に関することは、おそらく次の内容でしょう。 シート保護のメソッドProtectの5番目の引数で、サポートされていません。 サポートされていない引数にはFalseを代入するか、省略しないとエラーになるようです。 したがってこのままにしておくか、引数自体を削除すればいいと思います。 MicrosoftのURLを載せておきますので、ご自分で検索して見てください。 では。

参考URL:
http://www.microsoft.com/japan/ms.htm
maamaa
質問者

お礼

maruru01さんどうもお世話になりました。 検索で見つかりました。それにしても、検索画面の最初で こんなことまで見つかってしまうのには驚きました。 おかげさまでたった今basicプログラムをエクセルで作り直し できました。昨日からずーとやっていたので、物が二重に見えます。 どうもありがとうございました。 これからは答えていただく方のことも考えて質問するようにします(反省)

maamaa
質問者

補足

maruru01さん、ありがとうございます。確かに一行だけ書かれても 困りますね。失礼しました。 これから仕事なので明日また改めて御礼します。 今晩仕事に使うマクロなのでひと安心しました。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

:=が使用されてるので、元のコマンドが何かありますよね? 前後の部分についても教えてください。

maamaa
質問者

補足

説明不足がありました。教えてもらう立場にありながら配慮が 足りず失礼しました。次のようになっています。 どうぞよろしくお願いします。 Sheets("abc").Activate With ActiveSheet .Range("C4").Select .Protect contents:=True, userinterfaceonly:=False .EnableSelection = xlUnlockedCells End With

関連するQ&A

  • VBAのブール型のヘルプの意味がよくわからない

    VBAのブール型のヘルプの意味がよくわからないのですが 「Print # ステートメントを呼び出して出力すると、True または False の文字列が表示されます。」 と言うのはどうやったら再現できるのでしょうか?

  • VBAを入れる場所

    シートの非表示をVBAで実行したく(Excel2000) VBAのヘルプを見て Worksheets("Sheet1").Visible = False という式を見つけたのですが、どこに入力していいのかがわかりません。 質問内容をみていただいた通り、VBAに関しては全く知識がありません。 標準モジュールに入力してみたのですが、ダメでした。 (できれば、手順を詳しく教えてください) と、多分、上の式は、Sheet1を表示しなくするということだと思うのですが、 例えばSheet1とSheet3とか SHEET1からSheet4まで非表示にするとか というときには、どのように記述 したらよいのか、教えてください。 (Excelの機能でのシート非表示は知っています)

  • マクロ VBA 簡単なことなのかもしれませんが?

    時系列をexcelにロードする際、http://table.yahoo.co.jp/t?c=2007&a=6&b=20&f=2007&d=9&e=21&g=d&s=1321.o&y=0&z=1321.o のページの 月日から月日までの部分と銘柄コード=excelシート入力済。⇒VBA⇒ロードするための作業を、下記の方法で、とりあえず、終了日のところから改式をやってみたのですが、うまくゆきません。 "選択終了日"に変更する前の、数字の状態ではロードできるので、テーブル番号等は、問題ないようです。 原因の解る方、よろしくお願いします。 ----------------------------- Sub test() Range("a1:h300") = "" Dim shuuryoubi As String '選択終了日 Range("b1").Select With ActiveSheet.QueryTables.Add(Connection:= _ "URL;http://table.yahoo.co.jp/t?c=2007&a=6&b=20&f=2007&d=9&e=選択終了日&g=d&s=1321.o&y=0&z=1321.o" _ , Destination:=Range("b1")) .Name = _ "t?c=2007&a=6&b=20&f=2007&d=9&e=選択終了日&g=d&s=1321.o&y=0&z=1321.o" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .WebSelectionType = xlSpecifiedTables .WebFormatting = xlWebFormattingNone .WebTables = "23" .WebPreFormattedTextToColumns = True .WebConsecutiveDelimitersAsOne = True .WebSingleBlockTextImport = False .WebDisableDateRecognition = False .WebDisableRedirections = False .Refresh BackgroundQuery:=False shuuryoubi = 17 End With End Sub

  • EXCEL VBAヘルプの使い方

    EXCEL VBA初心者です。webのVBAの実例集などで勉強中なのですが、ヘルプの使い方で質問です。 たとえばFindのパラメータ Find(What,After,LookIn,LookAt,SearchOrder・・・) のLookIn,LookAtなどの意味を調べるにはどうしたらいいのでしょう? Findメソッドのヘルプを見ながら オブジェクトブラウザでXlFindLookInクラスは見つけられても、右クリックでもう一度ヘルプを見ようとすると ”ヘルプ ファイルは使えません”と出ます。何かインストールが足りないのでしょうか? 皆さんはVBAのメソッドの構文がわからない時などどのようにヘルプを使われているのでしょう?宜しくお願い致します。

  • VBA ファイル作成時にマクロを含まない

    只今、excelのVBAを学習中です。早速ですが質問させていただきます。 excelファイルを作成し、入力されたファイル名で保存するプログラムを組んでいます。 その際、作成したファイルがマクロを含んでしまうのですがマクロをふくまないようにする事は可能でしょうか? VBAを始めたばかりなので初歩的な質問で大変恐縮です。よろしくお願い致します。

  • エクセルのマクロ、VBAに関する質問

    エクセルのマクロ、VBAに関する質問です。 下記コード3行目の"ここヘルプ!"のところを ”「選択範囲左上のセル Selection(1)」を「A1形式」で「行だけ絶対参照 xlAbsRowRelColumn」したものに10足した値” にしたいです。 例:選択範囲がA1:D5なら”A$1+10”   選択範囲がB4:H78なら”B$4+10” もうちょっとで出来る気がするので教えて下さい。 Sub 基準値+1o以上をハッチング() Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _ Formula1:="ここヘルプ!" Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority With Selection.FormatConditions(1).Interior .PatternColorIndex = xlAutomatic .Color = 52479 .TintAndShade = 0 End With Selection.FormatConditions(1).StopIfTrue = False End Sub

  • excelのvbaを使って日付を置換したいのです

    こんにちは。いつも質問ばかりですみません。 今、excell の VBAの勉強をしているのですが、たとえば、B列に2004/5/3 とか、2004/5/5とか、5月の日付ばかりはいっていたとして、その2004/5の部分を2004/6に置換したいとします。 それを、マクロでやらせてみて、VBAを見ると Sub Macro9() Cells.Replace What:="2004/5", Replacement:="2004/6", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False End Sub のようになるのですが、このプロシージャーを実行しても、うまく置換できません。 どのように記述したら、できるのか、教えていただけるとうれしいです。 よろしくお願いいたします。

  • VBAでマクロを作りたいのですが、、、困ってます

    1問目に答えた人で2問目に答えた人は何人いたか・・・ 2問目で初めて答えた人は何人いたか・・・・というのを計算させたいです。 たとえば(1)のデータがあった時に、(2)のデータのように変換したいとしたらどのようなVBAマクロにすればよいのでしょうか。 (1) 質問No,回答者, 1,AAAAA 1,BBBBB 1,CCCCC 1,AAAAA 2,AAAAA 2,BBBBB 3,AAAAA 3,DDDDD (2) 1 2 3 ←回答回数 1問目 3 2 1 2問目 0 0 3問目 1 上の結果ですが、 1問目で1回目に答えたのはAAAAA,BBBBB,CCCCCの3人、 1問目に答えて2問目に答えたのは、AAAAA,BBBBBの2人、 そのまま2問目に答えた人で3問目にも答えたのはAAAAAの1人、 2問目で初めて答えた人、その中で2問答えたのは0人 3問目で初めて答えた人は、DDDDDの1人 のような表を意味しています。 データは2万行ほどあるので、VBAで処理しなければならないと考えています。 ほかにも何か方法があれば教えていただけると助かります。 どうぞよろしくお願いします。

  • Excel VBA VLOOKUP の書き方

    次の関数をVBAで書くにはどのように記述すればよいでしょうか? =IF(ISNA(VLOOKUP(B2,Sheet2!A2:B9,2,FALSE)),"",VLOOKUP(B2,Sheet2!A2:B9,2FALSE)) よろしくお願いします。

  • VBA(or ある言語)でできること、できないこと

    こんにちは、VBAについて質問させてください。 コンピュータの根本を理解せずにVBAをやっているので、どうしてもわからないことがあります。 一般的に言って、VBA(あるいはある言語)で実行できることとできないことは、どうやって判断するのでしょうか?(判断基準はありますか?) たとえば、Windows上で行なわれる全ての作業を、VBAで実行することができるのですか? たとえば、あるソフトウェアを買ってきて(たとえば翻訳ソフト)、それを自動的に起動させたり、そのソフト特有の操作(翻訳を実行する、など)を実行するプログラムを作ったりすることも可能なのですか? できないとすれば、どうしてできないと言えるのでしょうか? このまえ、はじめてVBAでIEを立ち上げることができることを知ったのですが、VBAを作る側が、それを実行できることをどうやって判断すればいいのですか?(抽象的な質問ですが意味がわかりますでしょうか。) 実行可能かどうかがわかっていれば、そのやりかたを調べるのはまったく苦でないのですが、そもそも実行可能でないかもしれないのに、闇雲に実行する方法を調べているようなレベルなので、効率が悪いです。どこで落としたのか分からないのに、落し物を探しているときのようないやな(漠然とした)感じです。何か一般的な基準はないでしょうか。 よろしくお願いします。

専門家に質問してみよう