エクセル VBAで印刷する用紙サイズを設定する

VBAからページ設定を行う事もできるんですね。
A4の用紙サイズを設定したい場合は下記。xlPaperA3 の部分を変えれば他にも応用できるよね。
しかしデフォがA3とか、A4しか印刷できない環境とか考えてないんだろうなぁと

ActiveSheet.PageSetup.PaperSize = xlPaperA3

office for Mac でのセル内での改行とかセル編集とか

LionやらMacBookAirやらMiniやら発売されてホットなAppleさんですが、Macに移行する際にまず出てくる問題が

MS Office Suite

特にエクセル・パワポについては、無いと仕事できない人も多いかと思います。
互換性のあるApple様純正のiWorksとかOpenOfficeとかあるけど、やっぱりMSさんのOffice for Mac。
でも買ったはいいけど、ショートカットが違うわ微妙に使用感が違うわでてんやわんや。

で、私が困ったショートカットを2つほど紹介

●アクティブなセルを編集モードにする
Windows
F2

Mac
control + U

●セル内での改行
Windows
Alt + Enter

Mac
option + command + enter

OSX Lionをインストールしたあとでも起動ディスクは作れるそうです。

MacをSnowLeopardからLionにしたあとにLionインストール.APPが消えてやられたー!!
つぶやきとか記事とかがいろいろでてましたが、インストール後でも問題なく起動ディスクの作成はできるとのこと。
いわれてみればそりゃそうだろwって思うけど焦ってた人には朗報。

詳しくは下記をどうぞ

このとき、インストールされていないMacであれば、表示されているApp名の横にインストールボタンが表示されている。インストールしてあるMacのときは、Optionキーを押しながら、選択するとインストールボタンが表示される。

OS X LionがインストールされているMacの場合は、Optionキーを押しながらOS X Lionを選択すれば、金額表示がインストール表示に変わるので、インストール表示になったらインストールをクリックすると、再インストール(ダウンロード)が始まる。ダウンロードが終了した時点で、インストールディスクを作成すればいい。

インストールした後でもインストール用起動ディスクは作成できる!! | Skynet Factory

Excel VBAで特定のシートをCSV出力する方法

エクセルでデータ作ってCSV保存→システムで取り込みってよくあるパターンかと思うのですが、ユーザに保存するときにCSVで保存してくださいって毎回言うのめんどくさいなーと思うのは自分だけじゃないはず。

という事で今回は、今開いているファイルの特定のシートを同一ディレクトリにCSVで保存する簡単なロジックをメモ
結構汎用的な作りにしてるからいろいろ便利なはず。
当初はExcel形式で保存する作りだったのでCSVでは必要なロジックも含まれてますが、まぁご愛嬌で

Public Function ExportCSV()
    On Error GoTo func_Err
    
    Application.ScreenUpdating = False  'レンダリングを止める
    Application.DisplayAlerts = False   'メッセージを出さない
    
    Dim strNewBookName As String
    strNewBookName = "新しいファイル名"
    
    'このファイルと同一ディレクトリに[変数:strNewBookName]の名前でCSV形式で保存(FileFormat:= の部分を変えると違う形式で保存できる。)
    Workbooks.Add.SaveAs Filename:=ThisWorkbook.Path & "\" & strNewBookName, FileFormat:=xlCSV
    
    'このファイルの[シート:strNewBookName]をコピーし上記で新しく作ったファイルの[シート:Sheet1]にペースト→保存→閉じる
    SheetCSV.Cells.Copy
    With Workbooks(strNewBookName & ".csv")                    'ファイル名の指定(別形式で保存する際はちゃんと拡張子あわせる)
        .Worksheets(strNewBookName).Range("A1").PasteSpecial Paste:=xlPasteAll    'すべて貼り付ける
        .Worksheets(strNewBookName).Range("A1").Select                            'シート全選択状態から[セル:A1]のみ選択状態に
        .Save
        .Close
    End With
    
    Call MsgBox("出力完了", vbInformation)
    
    GoTo func_End
func_Err:
    Call MsgBox("出力失敗", vbCritical)
func_End:
    Application.CutCopyMode = False     'コピーモードをオフ(コピー時に出る点線を消す)
    Application.DisplayAlerts = True    'メッセージを出す
    Application.ScreenUpdating = True   'レンダリング再開
End Function

Mac OSXで画面を回転する方法

一部では14日とか15日にもLionとかMacBookAirとか発売されると噂されるてますけど、どうですかね。楽しみです。

さて今回はMacでディスプレイを回転させる方法についてです。
ほとんどの人は関係ないと思いますが例えばデジタルサイネージとか、縦長ディスプレイにしてみたりとか、の際に使います。
Webサイトはほぼ縦長なのでブラウジングしかしない人は縦長もありかもしれません。

設定方法は以下

  1. [システム環境設定]を開いて
  2. キーボードの[command]と[option]を押しながらディスプレイをクリック

ここで回転する角度を指定すると画面が切り替わります。
※設定すると画面が回転しますのでしづらくなります。お気をつけを。

SharedObjectでローカルにデータ保持

Shared ObjectはFlashでローカルにデータを保持しておく際に使う記憶領域で、デフォルトでは下記の場所にある。
(環境によってはちょっと違うかも)

  • Windows
    • C:\Documents and Settings\”ユーザー名”\Application Data\Macromedia\Flash Player\#SharedObjects
  • Mac
    • ユーザ\”ユーザー名”\ライブラリ\Preferences\Macromedia\Flash Player\#SharedObjects

実はクッキーよりも使いやすくて結構な量のデータを保持しておく事ができる。
また、ユーザがブラウザの設定でキャッシュ消したり、いろいろ消したとしても消す事のできない領域だったりする。

動画サイトも殆どがFlashを使っているので、世のお父さん方が夜な夜なムフフな動画を見てたりすると結構ここにファイルが残っているので、履歴を消したからって安心できないので注意

Flashプレイヤの設定で保存できないように設定したり、許可する記憶量をいじれるので環境によってはできない事もある

ActionScript3で使う場合は、下記のようにする

取得

//UserInfoという名前のSharedObjectを取得する
//初めてgetLocalする場合は、パラメタの名前のSharedObjectを生成します。
var so:SharedObject = SharedObject.getLocal("UserInfo");

値のセット・保存

//取得・生成したUserInfoというSharedObjectに値を設定する
var so:SharedObject = SharedObject.getLocal("UserInfo");

//SharedObjectのUserInfoの[name]に[みぞ]・[password]に[パスワード]を指定する
so.data.Name = "みぞ"
so.data.Password = "パスワード"

//保存
so.flush();

こんな感じにできる。
これを初期化時に組み込めば、名前とパスワードをログインフォームにセットしておく事ができちゃう。