Excel VBA質問箱 IV

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

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


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

【79708】エラーメッセージ
質問  V  - 18/3/14(水) 10:38 -

引用なし
パスワード
   初心者でさっぱりわからないので教えて下さいませ。

Sheet1のA1からA41まで、大項目のデータの入力規則のリストになっています。
Sheet1のB1からB41まで、中項目のデータの入力規則のリストになっています。
Sheet1のC1からC41まで、小項目のデータの入力規則のリストになっています。
Sheet1のD1からE41まで、規格のデータの入力規則のリストになっています。
Sheet1のE1からE41までは、数量を入力するセルです。
Sheet1のF1からF41までは、金額を入力するセルです。

以降、Sheet1は省略させていただきます。
このときに、順々に

A1に値が入力されていないとB1,C1,D1,E1,F1は、入力できずに
「大項目を入力して下さい」とエラーメッセージがでるようにしたいです。

B1に値が入力されていないと、C1,D1,E1,F1は、入力できずに
「中項目を入力して下さい」とエラーメッセージがでるようにしたいです。

C1に値が入力されていないと、D1,E1,F1は、入力できずに
「小項目を入力して下さい」とエラーメッセージがでるようにしたいです。

D1に値が入力されていないと、E1,F1は、入力できずに
「規格を入力して下さい」とエラーメッセージがでるようにしたいです。
また、0以上で小数点第2位の数値でなければ「小数点第2位までの数値を入力して下さい」と
エラーメッセージがでるようにしたいです。
セルの書式設定で数値でも構いません。

E1に値が入力されていないと、F1は、入力できずに
「数量を入力して下さい」とエラーメッセージがでるようにしたいです。
また、0以上の正の整数でなければ「整数を入力して下さい」とエラーメッセージがでるようにしたいです。

2行目以降も同様にしたいです。

どなたかわかる方がおられましたら、
コードの提示をお願いしたいです。
説明が不足しているかもしれませんが、宜しくお願い致します。
・ツリー全体表示

【79707】Re:色つきを立て棒表示にしたい
発言  γ  - 18/3/14(水) 7:20 -

引用なし
パスワード
   内容については一切コメント無しなんですか。
どうかしてません?
・ツリー全体表示

【79706】Re:色つきを立て棒表示にしたい
お礼  トキノハジメ  - 18/3/13(火) 19:07 -

引用なし
パスワード
   ▼γ さん:
マナさん色々ご指摘下さいまして有難うございます。
入院をしまして返事おそくなったのをお許しください。
一応これで閉じようと思います。
また宜しくおねがいいたします。・
・ツリー全体表示

【79705】Re:オプションボタンによるテキストボッ...
お礼  ボタン  - 18/3/13(火) 15:50 -

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

コンボボックスは使用しませんでしたが、
マナさんのアドバイスから
Captionを変更、記入先の指定で
LabelやTextboxをある程度使いまわして
表示の切り替えができるようになりました。
ありがとうございます。

以下はオプションボタン1です。
こういった形で色々使いまわしました。

Private Sub OptionButton1_Click()

TextBox6.Value = ""
TextBox8.Value = ""
TextBox9.Value = ""
TextBox10.Value = ""

Label8.Visible = False
Label9.Visible = False
Label10.Visible = False
Label12.Visible = False
Label13.Visible = False
Label20.Visible = False

TextBox6.Visible = False
TextBox8.Visible = False
TextBox9.Visible = False
TextBox10.Visible = False

Label8.Caption = "社員番号"
Label9.Caption = "部署名"
Label12.Caption = "役職"
Label10.Caption = "名前"

Label8.Visible = True
Label9.Visible = True
Label10.Visible = True
Label12.Visible = True
Label13.Visible = True

TextBox6.Visible = True
TextBox8.Visible = True
TextBox9.Visible = True
TextBox10.Visible = True


>▼ボタン さん:
>OptionButton1の値がTrueにしたら
>  Label1のCaptionを部署名に変更
>  TextBox1の転記先ををC列に変更
>  Label2のCaptionを社員番号に変更
>  TextBox2の転記先ををD列に変更
>
>OptionButton2の値がTrueにしたら
>  Label1のCaptionを会社名に変更
>  TextBox1の転記先ををE列に変更
>  Label2のCaptionを役職名に変更
>  TextBox2の転記先ををF列に変更
>
>のようにできないかと考えています。
>
>また場合によっては、TextBoxのかわりに、
>ComboBoxを使うのも便利かもしれません。
・ツリー全体表示

【79704】Re:テーブル名の一括変更
質問  AAA  - 18/3/13(火) 9:55 -

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

単純に数が多いからです。
一括で変更することができる方法は、
可能でしょうか?
・ツリー全体表示

【79703】Re:テーブル名の一括変更
発言  マナ  - 18/3/13(火) 9:51 -

引用なし
パスワード
   ▼AAA さん:

何故そんなまわりくどいことをするのでしょうか。
「名前の管理」から変更では、駄目なのでしょうか。
・ツリー全体表示

【79702】Re:テーブル名の一括変更
質問  AAA  - 18/3/13(火) 9:17 -

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

返信ありがとうございます。

最終的には、テーブル名をシートに書出して
そのシート上で編集(テーブル名の名前の変更)し
名前の定義に戻したいのです。
宜しくお願い致します。
・ツリー全体表示

【79701】Re:稼働管理のExcel化(ブック保護等)
発言  マナ  - 18/3/12(月) 20:49 -

引用なし
パスワード
   ▼りった さん:

承認したら、該当セルをロックするのではだめなのですか?

1)シート保護解除
2)承認と入力
3)セルをロック
4)シート保護
・ツリー全体表示

【79700】Re:テーブル名の一括変更
発言  γ  - 18/3/12(月) 20:48 -

引用なし
パスワード
   例文のとっかかりです。ヘルプで確認して下さい。

Sub test()
  Dim lst As ListObject
  For Each lst In ActiveSheet.ListObjects
    Debug.Print lst.Name
  Next
End Sub
・ツリー全体表示

【79699】Re:テーブル名の一括変更
発言  マナ  - 18/3/12(月) 20:41 -

引用なし
パスワード
   ▼AAA さん:

>テーブル名の一括変更

テーブル名を変えるために、名前をループしないとだめなのですか。
最終的に、何がしたいか説明できますか。

Sub test()
  Dim ws As Worksheet
  Dim t As ListObject
  
  For Each ws In ActiveWorkbook.Worksheets
    For Each t In ws.ListObjects
      MsgBox t.Name
    Next
  Next
      
End Sub
・ツリー全体表示

【79698】テーブル名の一括変更
質問  AAA  - 18/3/12(月) 16:39 -

引用なし
パスワード
   下記は、名前の定義の書出しと登録のマクロですが
テーブル名は、書きだされません。
テーブル名も同じようにすることは可能でしょうか?

どなたか宜しくお願い致します。


Sub NamesListsOut()
'名前定義書き出し
Dim i As Integer
With ActiveWorkbook
For i = 1 To .Names.Count
 Cells(i, 1).Value = .Names(i).Name
 Cells(i, 2).Value = "'" & .Names(i).RefersToLocal
Next i
End With
End Sub

'--------------------------------------------------
Sub NamesListsIn()
'名前定義登録
Dim n As Name
Dim i As Integer

With ActiveWorkbook

'一旦名前定義を削除
For Each n In .Names
 n.Delete
Next n
'登録
On Error Resume Next
For i = 1 To Range("A65536").End(xlUp).Row
  .Names.Add Cells(i, 1).Value, Cells(i, 2).Value
Next i
On Error GoTo 0
End With
End Sub

'--------------------------------------------------
・ツリー全体表示

【79697】Re:稼働管理のExcel化(ブック保護等)
質問  りった  - 18/3/12(月) 12:45 -

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

> 悪意あるユーザーを前提にし、それに対抗するということなら、
> Excelは限界があるように思います。
おっしゃる通りと思います。
ただ、現状の紙運用でも偽造は可能(※1)なので、
なんとなくの対策(※2)が出来ていればあとは作業者の良心に期待します。

※1 消せるボールペンで書いて、捺印後に改ざんする等
※2 一般ユーザ(マクロは記録したのをパラメータ変えたり、
  forで回したりする程度)がやぶれない程度の対策。

> 例えば、マクロを前提にするでしょうが、
> マクロ無効で開くことも可能です。
> それへの対応策も考える必要があります。
はい。そこを考えています。
VERRY HIDDENシートに、捺印時の時刻を保存しておき、
自社で集計する際に改ざんされていないかチェックすれば
とりあえずの対策にはなるか、それでは大穴があいているかを知りたいです。


> パスワードすら脆弱性があるということも聞きます。
そこはマイクロソフトのせいと言って逃げます。

自社上司も、毎月のチェック作業にうんざりしているので、
多少のことには目をつぶる雰囲気なのです。
とはいえザルではまずいのです。
・ツリー全体表示

【79696】Re:稼働管理のExcel化(ブック保護等)
お礼  りった  - 18/3/12(月) 12:27 -

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


> タイムシートのファイルの方にマクロを組み込みたくない(マクロの有効・無効によって挙動が代わっては困る)ということであれば、
いえ。タイムシートがマクロ有りファイルになること自体に問題は有りません。

作業者が勝手に捺印できないように、捺印マクロは作業者が勝手に実行出来ないようにする必要が有ります。
・ツリー全体表示

【79695】Re:稼働管理のExcel化(ブック保護等)
発言  亀マスター  - 18/3/11(日) 12:15 -

引用なし
パスワード
   タイムシートのファイルの方にマクロを組み込みたくない(マクロの有効・無効によって挙動が代わっては困る)ということであれば、以下のようなものを応用すればなんとかなる・・・かも。

ht tp://www.geocities.jp/chiquilin_site/data/050530_search.html

試してみようとしましたが、捺印の数だけ名前の定義が増える方法しか思いつきませんでした。
・ツリー全体表示

【79694】Re:色つきを立て棒表示にしたい
回答  γ  - 18/3/10(土) 15:12 -

引用なし
パスワード
   条件付き書式では太い線が引けません。
仕様のようです。
そこをマクロでなんとか、ということかもしれないが、
仕様の範囲外のことをマクロに求めても無駄です。

マクロ記録でできないことを承知で質問されたようですが、
そうしたことは質問の最初に書くべきです。
互いに時間の無駄になります。

そもそも太い罫線が、背景色よりも目立つとは考えられません。
質問のための質問のようで、そうした質問は歓迎されません。

どうしても、太罫線が必要なら、
changeイベントプロシージャでセル内容が変更されたとき、
対応することになるでしょう。
・ツリー全体表示

【79693】Re:稼働管理のExcel化(ブック保護等)
発言  γ  - 18/3/10(土) 15:04 -

引用なし
パスワード
   望まれる回答ではありませんが、少しだけ。

悪意あるユーザーを前提にし、それに対抗するということなら、
Excelは限界があるように思います。
例えば、マクロを前提にするでしょうが、
マクロ無効で開くことも可能です。
それへの対応策も考える必要があります。
パスワードすら脆弱性があるということも聞きます。
・ツリー全体表示

【79692】Re:セルの入力
お礼  AAA  - 18/3/9(金) 14:54 -

引用なし
パスワード
   カリーニン様
りった様

うまくいきました。
ありがとうございました。
・ツリー全体表示

【79691】Re:セルの入力
発言  Jaka  - 18/3/9(金) 14:35 -

引用なし
パスワード
   どこつけようか迷ったけれど・・・。

計算方法だけ。

MsgBox Application.Evaluate(Range("B1").Value)
・ツリー全体表示

【79690】Re:セルの入力
発言  カリーニン  - 18/3/9(金) 14:01 -

引用なし
パスワード
   りったさんのコードの
Range("A1")
の部分を
Range("C1")
と書き換えて試してみてください。

なお、40%は「0.4」と入力してください。
・ツリー全体表示

【79689】Re:セルの入力
発言  AAA  - 18/3/9(金) 10:15 -

引用なし
パスワード
   カリーニン様

返信ありがとうございます。

シートモジュールに張り付けてます。

でも、B1に計算されないです。
・ツリー全体表示

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