これ何て呼びますか Part2

例えば入力後右に移動するように設定すると、他のエクセルファイルにも反映してしまうのですが、
文書ごとに変えられないのでしょうか?
ブックごと、シートごとに設定できないのでしょうか?
ちなみにOSはWinMeでもXPでもエクセル2002でも2003でも同じでした。

A 回答 (8件)

#7>ありがとうございます!m(__)m 何度も申し訳ないです。


いいえ、どういたしまして!
いつも思うことですが、実際のブックをやり取りできれば、話は簡単なんですが、言葉で説明するのって難しいですねぇ。

>>Private Sub Workbook_Open()
>というのが見当たらないのですが、
>どのタイミングでどこに出てくるのでしょうか・・・?
エクセルを立ち上げてALT+F11でVBEの画面になります。
(既に実行されているんだからここはイイと思いますけど一応念のため)
プロジェクトウインドウに
VBAProject
 Microsoft Excel Objects
  …
  ThisWorkbook
というのが有るはずです。
このThisWorkbook をダブルクリックすると、
ブックのマクロを記述できるコードペインが開きます。
この状態で、上方にある左側のリストボックスに
(General) と表示されているハズですが、ココをクリックすると、リストが表示されて、その中にWorkbook があるはずです。
Workbook を選ぶと
自動的に、右側のリストボックスがOpen が選ばれて、
以下のコードが自動的に挿入されます。
Private Sub Workbook_Open()

End Sub
これは、ワークブックを開いた時に実行されるプロシジャーです。
ここに、ワークブックを開いた時に実行させたいマクロコードを記述します。
同様に、右側のリストボックスからActivate を選択すると
以下のコードが挿入されます。以降同じ。
Private Sub Workbook_Activate()

End Sub

#7>「標準の状態として設定し直して」
標準の状態というのは、なんでもいいので、新しいブックを開いて、
ツール~オプション
 編集タブ
  □入力後にセルを移動する
にチェックを付け、下に移動などと設定をして保存をします。
このオプションの設定は、全てのブックに共通なので、
(そもそも、それが、質問の題意)1つのブックで設定すれば、それ以降に開くブックにも適用されます。
それから、マクロを設定したブックを開くと、その標準の状態を変数として取っておいて変更し、ブックがアクティブでなくなる時(ブックを切り換えたり閉じた時、)取っておいた元の状態に戻します。
    • good
    • 0
この回答へのお礼

BLUEPIXYさん、大成功です!本当に詳しくありがとうございました!
初めてVBAというものを触った初心者なので感激です~!
実は#7にある「右向き三角のボタン=マクロの実行ボタン」を押さずに無理矢理閉じてました。
それでエラーになってたみたいです。
これで上司が使うファイルと自分が使うファイルの設定を分けられるし、BOOKごとに便利な形式に設定自由!って感じですごく嬉しいです!

お礼日時:2006/05/10 22:34

#6>「標準の状態に戻す」というところの標準とは、エンターキーを押してもその場から動かないという設定でしょうか?


「このブックを開いたときに設定されていた状態に戻す」という意味です。

#6>このVBAを設定したブックは右になりましたが、その他のブックは入力後の移動をしなくなりました。
おそらく、#6で注意していたエラーになって、
ツール~オプション
 編集タブ
  □入力後にセルを移動する
のチェックがはずれた状態になっていると思います。
お手数ですが、標準の状態として設定し直してください。
これで直る(普通のブックは、標準の状態で開き、マクロを設定したブックは、右に移動になる。)と思います。
    • good
    • 1
この回答へのお礼

ありがとうございます!m(__)m 何度も申し訳ないです。
でもここの意味がちょっとわからなくて。↓

  「カーソルを
  >Private Sub Workbook_Open()
  に置いてツールバーから右向き三角ボタンを押してから保存」

>Private Sub Workbook_Open()
というのが見当たらないのですが、
どのタイミングでどこに出てくるのでしょうか・・・?

それと、「標準の状態として設定し直して」
というのも「#6で注意していたエラー」を解決しないとダメみたいですね。

お時間があるときで結構ですのでよかったら教えてください。

お礼日時:2006/05/09 22:38

#4>やり方教えていただきたいんですが・・・。


既に答えに近いと思ったので、具体的には書きませんでした。
#5で、シートの場合を書かれているのでBookの場合を具体的に書きます。
ALT+F11でVBEの画面にしてThisWorkbook をダブルクリックして以下のコードを貼り付けます。
そのまま保存するとエラーになりますので、
カーソルを
>Private Sub Workbook_Open()
に置いてツールバーから右向き三角ボタンを押してから保存するか
エラーになったら、そのまま終了して
別ブックを開いてからこのファイルを開くというようにしてください。
(プログラムを書き込んだすぐの時には、ファイルを開いた時の標準の状態の保存ができていないため)
*
実際に#4で答えた時には試していなかったので#3で言われているプロパティは、方向を設定するプロパティというより方向を設定するかどうかのプロパティだと気付いていませんでした。
適当なことを書いてすみませんでした。
----------------------------------------------------------------
'デフォルトの値を保存する変数
Public canAfterReturn As Boolean
Public dirAfterReturn As XlDirection

Private Sub Workbook_Activate()
'このワークブックがアクティブになった時
'リターンで右にカーソル移動するように設定する
Application.MoveAfterReturn = True
Application.MoveAfterReturnDirection = xlToRight
End Sub

Private Sub Workbook_Deactivate()
'このワークブックがアクティブで無くなった時標準の状態に戻す。
Application.MoveAfterReturn = canAfterReturn
Application.MoveAfterReturnDirection = dirAfterReturn
End Sub

Private Sub Workbook_Open()
'デフォルトの状態を読み出して保存しておく
canAfterReturn = Application.MoveAfterReturn
dirAfterReturn = Application.MoveAfterReturnDirection
End Sub
    • good
    • 2
この回答へのお礼

とっても詳しくありがとうございます!
「標準の状態に戻す」というところの標準とは、エンターキーを押してもその場から動かないという設定でしょうか?
このVBAを設定したブックは右になりましたが、その他のブックは入力後の移動をしなくなりました。
・・・それでも理想に近づきました。(´・∀・)
少し勉強してみます。

お礼日時:2006/05/08 19:06

#4のご回答が出ましたが、例えばBook1で作業する(Bookを開いた)とき、VBAで横方向と設定し、BOOK1を閉じる時は、標準(下方向)に変えておくとかすれば、あたかもそのブックごとに設定したかのごとく、自由に設定できます。

それと#3は別のことを言ってます。
さらにSheet別に設定するなら
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Select Case Sh.Name
Case "Sheet1"
MsgBox "sheet1"
'Application.MoveAfterRetun = True
Application.MoveAfterReturnDirection = xlDown 'xlToRight
Case "Sheet2"
MsgBox "Sheet2"
Application.MoveAfterReturnDirection = xlToRight
End Select
End
End Sub
とすれば、Sheet1を開くと、下方向
Sheet2を開くと、右方向にできます。
ツールーマクローVBEで
通常左側に出るVBAProjectのThisWorkBookをクリックし、WorkBookのSheetActivate
イベントに貼り付ける。
    • good
    • 0
この回答へのお礼

いっぱいありがとうございました!
まだ成功していませんが、VBAに興味を持ちました。
勉強と練習してみます。

お礼日時:2006/05/08 18:58

VBA を使っても良いと言うことであれば、


#3の言われるプロパティを
ThisWorkbook の Workbook_Open() (あるいは、Workbook_Activate()とか)で強制的に設定するようにしておけば良いような気がします。

この回答への補足

ありがとうございます!でもVBAって使った事が無いんです。
少し勉強してみます。
もしお時間がありましたら、やり方教えていただきたいんですが・・・。

補足日時:2006/05/04 23:25
    • good
    • 0

エクセルVBAでは、Returnキーを押した後に動く方向を


MoveAfterRetun(プロパティ)で設定・取得できますが、Object.MoveAfterRetun
で記述します。このObjectはApplicationしか許されません。ApplicationとはエクセルVBAではエクセルそのものです。
WorkBookやWorkSheetは許されないので、エクセルに設定ーー>各ブックに影響が及ぶとなると思います。ある時点で考ると、各ブック単位に別設定はできないということになるでしょう。
    • good
    • 0
この回答へのお礼

そうですか・・・。(-ω-。`)
ありがとうございました!
マイクロソフトさんがどうにかしてくれない限り無理なんですね~・・・?

お礼日時:2006/05/02 21:49

ツールからオプション、編集で「入力後にセルを移動する」には、「上下左右」しか、ありませんね~。


入力するセルの範囲を選択してから行うと、右・下、どちらにも移動しますので、こんな方法では如何でしょうか。

この回答への補足

そうですね、範囲選択とかTabを使ったりとか、方法はありますが・・・。
会社のPCの場合、複数の人間が使うので、上司に設定を変えないでと言い辛いんですよね。
そのうえみなさんこういった小技を知らないし覚えてくれないんです。

補足日時:2006/05/02 21:15
    • good
    • 0

入力後右に移動するように設定すると、他のエクセルファイルにも反映してしまうのですが、




ここの部分がよくわからないので
もう少し細かく説明していただけますでしょうか?
移動ってなんですか?何を?

よろしくお願いいたします^^

この回答への補足

あ、すみません!
ツール→オプション→編集
のところに入力後に移動するセルの方向、というのがありますよね。
それを右に設定すると、全てのエクセルファイルが右になるんです。
セルへの文字入力が終わってエンターを押したときの事です。

補足日時:2006/05/02 21:10
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報