Excel VBA質問箱 IV

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

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


10875 / 13644 ツリー ←次へ | 前へ→

【19389】オープン制限回数とパスワードの設定 ami 04/10/30(土) 11:32 質問[未読]
【19392】Re:オープン制限回数とパスワードの設定 ちゃっぴ 04/10/30(土) 13:29 発言[未読]
【19393】Re:オープン制限回数とパスワードの設定 ami 04/10/30(土) 13:48 お礼[未読]
【19416】Re:オープン制限回数とパスワードの設定 ami 04/11/1(月) 9:34 質問[未読]
【19421】Re:WindowsXPにおける特殊フォルダ名の取得 かみちゃん 04/11/1(月) 13:05 回答[未読]
【19425】Re:WindowsXPにおける特殊フォルダ名の取... ami 04/11/1(月) 19:22 お礼[未読]
【19423】Re:オープン制限回数とパスワードの設定 Kein 04/11/1(月) 16:31 回答[未読]
【19427】Re:オープン制限回数とパスワードの設定 ami 04/11/1(月) 19:30 お礼[未読]

【19389】オープン制限回数とパスワードの設定
質問  ami  - 04/10/30(土) 11:32 -

引用なし
パスワード
   初めて投稿させていただきます。
こちらはいつも拝見し大変助かっております。

シェアウエアでよくされている、
パスワード取得までのオープン回数制限と
パスワード入力による上記回避の設定方法をお願いします。

過去ログを探しましたが、見つかりません。
よろしくお願い申し上げます。

【19392】Re:オープン制限回数とパスワードの設定
発言  ちゃっぴ  - 04/10/30(土) 13:29 -

引用なし
パスワード
   >パスワード取得までのオープン回数制限と

オープン回数制限ということなので、前提条件として、
オープン回数を保存しておくことが必要になります。

普通、Regstryを使用していると思いますが・・・・

>パスワード入力による上記回避の設定方法をお願いします。

どこかに、そのフラグを保存しておいて、毎回そこに
問い合わせてやればいいと思います。

【19393】Re:オープン制限回数とパスワードの設定
お礼  ami  - 04/10/30(土) 13:48 -

引用なし
パスワード
   ちゃっぴ さん有難うございます。
これから、挑戦してみます。
また、わからなくなりましたら、書き込みさせていただきます。
よろしくお願いいたします。

【19416】Re:オープン制限回数とパスワードの設定
質問  ami  - 04/11/1(月) 9:34 -

引用なし
パスワード
   >どこかに、そのフラグを保存しておいて、毎回そこに
>問い合わせてやればいいと思います。
システムフォルダに記録が出来るようにはできたのですが、
Windows2000/XP の場合、administrator権限があるユーザしか使えない事を知りました。
C:\Documents and Settings\(ユーザ名)\Application Data
に保存できる方法はないでしょうか?
よろしくお願いいたします。

【19421】Re:WindowsXPにおける特殊フォルダ名の取...
回答  かみちゃん  - 04/11/1(月) 13:05 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>C:\Documents and Settings\(ユーザ名)\Application Data
>に保存できる方法はないでしょうか?

私は、特殊フォルダのパスをSHGetSpecialFolderPathというAPIを使って、以下のような方法で取得しています。
(WindowsXP Pro + Excel2000 SR-1 で動作確認済みです)
Macro1マクロを実行してみてください。

'------------------------------------------------------------
'特殊フォルダのパスを取得
'【参照URL】
'http://www.wainet.ne.jp/~ko-ichi/sample/sppath.htm
'------------------------------------------------------------
'APIを宣言
Public Declare Function SHGetSpecialFolderPath Lib "shell32.dll" Alias "SHGetSpecialFolderPathA" _
    (ByVal hwndOwner As Long, ByVal lpszPath As String, ByVal nFolder As Long, ByVal fCreate As Long) As Long
'hwndOwner  :0でいい
'lpszPath   :戻り値を格納するバッファ
'nFolder   :CSIDL定数
'fCreate   :1のとき、無かったら作成する 0だと作成しない

'CSIDL定数一覧
Public Const CSIDL_DESKTOP = &H0&      'デスクトップ
Public Const CSIDL_INTERNET = &H1&     'Internet Explorer
Public Const CSIDL_PROGRAMS = &H2&     'スタートメニュー\プログラム
Public Const CSIDL_CONTROLS = &H3&     'コントロール パネル
Public Const CSIDL_PRINTERS = &H4&     'プリンタ
Public Const CSIDL_PERSONAL = &H5&     'マイドキュメント
Public Const CSIDL_FAVORITES = &H6&     'お気に入り
Public Const CSIDL_STARTUP = &H7&      'スタートアップ
Public Const CSIDL_RECENT = &H8&      '最近使ったファイル
Public Const CSIDL_SENDTO = &H9&      '送る
Public Const CSIDL_BITBUCKET = &HA&     'ごみ箱
Public Const CSIDL_STARTMENU = &HB&     'スタートメニュー
Public Const CSIDL_MYMUSIC = &HD&      'マイミュージック
Public Const CSIDL_MYVIDEO = &HE&      'マイビデオ
Public Const CSIDL_DESKTOPDIRECTORY = &H10& 'デスクトップディレクトリ
Public Const CSIDL_DRIVES = &H11&      'マイ コンピュータ
Public Const CSIDL_NETWORK = &H12&     'マイネットワーク
Public Const CSIDL_NETHOOD = &H13&     'ネットワーク
Public Const CSIDL_FONTS = &H14&      'フォント
Public Const CSIDL_TEMPLATES = &H15&    'テンプレート
Public Const CSIDL_APPDATA = &H1A&     'アプリケーションデータ
Public Const CSIDL_PRINTHOOD = &H1B&    'プリンタ
Public Const CSIDL_LOCAL_APPDATA = &H1C&  'ローカルアプリケーションデータ
Public Const CSIDL_ALTSTARTUP = &H1D&    '非ローカライズスタートアップ
Public Const CSIDL_INTERNET_CACHE = &H20&  'インターネットキャッシュ
Public Const CSIDL_COOKIES = &H21&     'クッキー(IE)
Public Const CSIDL_HISTORY = &H22&     '履歴(IE)
Public Const CSIDL_WINDOWS = &H24&     'Windowsディレクトリ
Public Const CSIDL_SYSTEM = &H25&      'Systemディレクトリ
Public Const CSIDL_PROGRAM_FILES = &H26&  'C:\Program Files
Public Const CSIDL_MYPICTURES = &H27&    'マイピクチャ
Public Const CSIDL_PROFILE = &H28&     'プロファイル
Public Const CSIDL_ADMINTOOLS = &H30&    '管理ツール
Public Const CSIDL_CONNECTIONS = &H31&    'ネットワーク接続

'------------------------------------------------------------------------------
'特殊フォルダのフルパスを取得
'lngFolder  :特殊フォルダをCSIDL定数で指定
Public Function SHGetFoldPath(ByVal lngFolder As Long) As String
  Dim strBuffer As String
  Dim lngRet As Long
  
  strBuffer = String(256, vbNullChar)
  lngRet = SHGetSpecialFolderPath(0, strBuffer, lngFolder, 0)
  SHGetFoldPath = Left(strBuffer, InStr(strBuffer, vbNullChar) - 1)
  
End Function

Sub Macro1()
 MsgBox SHGetFoldPath(CSIDL_LOCAL_APPDATA)
End Sub

【19423】Re:オープン制限回数とパスワードの設定
回答  Kein  - 04/11/1(月) 16:31 -

引用なし
パスワード
   システムフォルダーでなく、レジストリに値を書き込むのです。
↓こちらを参考にして下さい。
http://park7.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200309/03090172.txt
残日数の代わりにカウンタ変数を使えば、ご希望の処理になると思います。

【19425】Re:WindowsXPにおける特殊フォルダ名の取...
お礼  ami  - 04/11/1(月) 19:22 -

引用なし
パスワード
   >私は、特殊フォルダのパスをSHGetSpecialFolderPathというAPIを使って、以下のような方法で取得しています。
>(WindowsXP Pro + Excel2000 SR-1 で動作確認済みです)
>Macro1マクロを実行してみてください。

かみちゃん(さん)?m(__)m
しっかり取得できました。感激です!
いろいろ勉強になり、本当に助かりました。
有難うございました。

【19427】Re:オープン制限回数とパスワードの設定
お礼  ami  - 04/11/1(月) 19:30 -

引用なし
パスワード
   Kein さん有難うございました!
>システムフォルダーでなく、レジストリに値を書き込むのです。
そうでしたか、、初心者で、あちこちから、コピー 貼り付けで、
継ぎ接ぎだらけ?の作品しか出来ない私ですが、、
いろいろな方法があるのですね。勉強になります。
VBAますます、はまりそうです。
有難うございました。

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