弥生 [弥生会計] の振替伝票をショートカットキーで入力する方法
弥生会計(以下:弥生)の振替伝票(以下:振伝)の入力で、
マウスやトラックボールをコチコチしなくても
ショートカットキーでテンポよく処理できる方法です
振伝を入力する状況のリアルな順番で紹介します
赤文字は忘れがちなショートカットキーです
1、仕訳日記帳から摘要ワードで検索
まず振伝にしたい仕訳を探します。
仕訳日記帳の画面を開いたら、
Alt+Yで全期間表示
F3で検索ポップアップ表示
Alt+Tで摘要にチェックを入れる
Tabで摘要枠編集有効
検索ワード入力したらエンターで絞れます
(ヒットしなかった場合、Shift+F3で絞込解除(リセット))
↓や↑で行移動
Ctrl+ENDで最終行へ移動
2、新規で振伝を作成する場合
振伝にしたい行の上で右クリック→Hで振伝に変更
(コピーしてから振伝にしたい場合は
Ctrl+Lで行コピーして
Ctrl+Yで行挿入(アクティブ行の上に挿入されます)、右クリック→Hで振伝に変更)
- - - - ここからは1行ごとの仕訳入力です- - - -
エンターで横移動
Ctrl+Fで上の行の文字をコピー
Alt+↓で科目のプルダウン広げる、↓で科目選ぶ
(サーチキー英字にしていたら途中まで出てきて選びますが、
現金のような上の方にある科目はプルダウンから選ぶと早い)
金額入力でスラッシュ「/」はゼロ3つ入力できる( 1+/ だと1000円)
Ctrl+Qで借方税区分選択、Alt+↓でプルダウン広げる、↓で選ぶ
Ctrl+Wで貸方税区分選択、Alt+↓でプルダウン広げる、↓で選ぶ
金額で+を押すと差額が入力される
F12で振伝登録
Ctrl+F4で振伝画面閉じる
この登録後に残るいらない画面もショートカットキーで閉じましょうね・・!
3、既存の振伝を複製して書き換えて作成したい場合
複製したい振伝の上でF8で振伝開ける
Ctrl+Rで中身はそのままで複製して新規作成
2で紹介したショートカットキーで編集する
F12で振伝登録
Ctrl+F4で振伝画面閉じる
【番外編】マイクラ[Minecraft]外部サーバーGALAXITEで好きなゲームに入る方法
久々にMinecraftの外部サーバーのGALAXITEに入ったら、
入り口が激変していました…。
※GALAXITE…Minecraft 総合版(Bedrock Edition)でオンラインで遊べる外部サーバーの一つ。
今までは他のサーバーと同じようにイメージエンティティに体当たりしてゲームに参加できる形だったのですが、
入ったとこにドカンと置かれたパネルから選択していくシステムになっており・・・
かくれんぼ(Prop Hunt)に入りたいのに、ランダムに別のゲームを案内されてしまう…!?
入りたいゲームに入れなくなってしまいました。
あれこれやってやっと気づいた。
参加したいゲームを選ぶんじゃなくて
「消去法」で不要に切り替えて残した1つに入れるシステムだったんです・・
方法
1 真ん中の「GAMES PLAY」を選ぶ
2 右端の「CUSTOM」を選ぶ
3 参加したいゲーム(ここではProp Hunt)以外のゲームタイプを「DISABLED」に切り替える
押したら「DISABLED」に切り替わるものもあればもう一段階出てくるものもあり、グリーンをグレーにして不要に切り替えて完全にOFFにする
4 「BACK」で戻って参加したいゲーム以外を完全に切り替えたら「PLAY」で決定
5 サーチングが始まって待ってたらいつもの待合室?に入れる!
「DISABLED」にしなかったら基本ランダムっぽいです
ランダム遊びたい人、いるかな…?w
音楽ストリーミングサービスが無課金だとシャッフルになるのと似た傾向でしょうか?w
この日は息子と一緒にかくれんぼ楽しめました^^
ちなみにサーバーに入りなおしても記憶してくれてたので面倒な設定は最初だけです。
「Prop Hunt」、隠れるの楽しいですよね◎
GAS[Google Apps Script]二次元配列で特定ワードを含む行削除、昇順並び替え、不要列削除、空白行削除
function test() {
var AS = SpreadsheetApp.getActiveSheet() // アクティブシートを選択
var lastRow = AS.getLastRow() // 入力最終行を調べる
const original = AS.getRange(1, 1, lastRow, 8).getValues() // ここでは8列を二次元配列に格納
// 不要行を削除 不参加予定の人の行は消す ///////////
for (var i = 0; i < original.length; i++) {
if (original[i].indexOf("*不参加*") === -1) continue // ワイルドカードのアスタリスクで部分一致を選別して削除
original.splice(i, 1)
i--
}
for (var i = 0; i < original.length; i++) {
if (original[i].indexOf("*欠席*") === -1) continue // 二つ目のワードを追加したい時はforからの一連を追加
original.splice(i, 1)
i--
}
// 格納した出席者のフリガナ列をアイウエオ順に並び替え ///////////
original.sort(sorting_asc) // ascは昇順です。降順ならdesc
function sorting_asc(a, b){
if(a[6] < b[6]){ // ここではフリガナ列は7列目にあります
return -1
}else if(a[6] > b[6] ){
return 1
}else{
return 6
}
}
// 不要列を削除 ///////////
var DeleteColumn1 = [0, 1, 2, 3, 4, 5] // ここでは1~6列目は用が無くなったので削除して列を詰めます
for(var i=0; i<original.length; i++){
for(var j=0; j<DeleteColumn1.length; j++){
original[i].splice(DeleteColumn1[j]-j, 1)
}
}
// 空白行があったら削除して original2 へ格納 ///////////
var original2 = original.filter(v => v[0])
// 貼り付け
activespreadsheet.getRange(1, 10, original2.length, original2[0].length).setValues(original2)
}
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
スプレッドの出席名簿を参加者のみピックアップ→アイウエオ順に並び替えて貼り付けを、二次元配列で処理するスクリプトです
コードで指定したい範囲は仮なので書き換えてください
最初と最後の、配列の格納と貼り付けは下記で説明しています↓
スプレッドは断然、二次元配列を使ったほうがいいです
セル一つ一つの情報を逐一グーグル先生に聞いて処理するので、
セルの数が多いほど時間がかかります
ローカルで動かすエクセルVBAとは速度が天と地の差です
そのかわり二次元配列のコードの解読はわかりやすい方なので、
これぐらいはクリアしないと他の言語は厳しいと思います
GAS[Google Apps Script]配列に格納して置換、配列を貼り付け
function test() {
var AS = SpreadsheetApp.getActiveSheet() // アクティブシートを選択
var lastRow = AS.getLastRow() // 入力最終行を調べる
// 要置換部分を格納、貼り付け ///////////
const original = AS.getRange(5, 2, lastRow, 2).getValues() // 一次元配列に格納
for(var i = 0; i < original.length; i++){
for(var j = 0; j < original[i].length; j++){
original[i][j] = original[i][j].replace(" ", " ") // 半角スペースを全角に置換
original[i][j] = original[i][j].trim() // 不要なスペースを削除
}
}
AS.getRange(5, 10, original.length, original[0].length).setValues(original) // 配列を貼り付け
}
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
一次元配列に格納して置換するコードです
指定したい範囲は仮なので書き換えてください
// 一次元配列に格納
getValuesで配列に格納できます
ここでは一列なので一次元配列ですが、複数列にすると二次元で格納できます
getRange(5, 2, lastRow, 2).getValues()
↓
getRange(行ここから, 列ここから, 行ここまで, 列ここまで).getValues()
// 半角スペースを全角に置換
replaceで置換可能です
replace(" ", " ")
↓
replace("これを", "これに")
// 不要なスペースを削除
trimで前後のスペースを削除、真ん中にスペースが二つ以上あれば一つ残して削除できます
// 配列を貼り付け
配列の貼り付けは、格納した配列の行数と列数まで指定しないとできません
でも毎回変わるので固定の数字にはできない。
なので格納した配列の最大行数と最大列数を都度求めるコード(length)を入れます
AS.getRange(5, 10, original.length, original[0].length).setValues(original)
↓
AS.getRange(行ここから, 列ここから, 格納した配列の最大行数, 格納した配列の最大列数).setValues(格納した配列)
GAS[Google Apps Script]もしフィルターがかかっていたら解除する
function remove() {
var AS = SpreadsheetApp.getActiveSheet() // アクティブシートを選択
var lastRow = AS.getLastRow() // 入力最終行を調べる
////// 一旦削除
AS.getRange(5, 1, lastRow, 26).breakApart() // セルの結合を解除
AS.getRange(5, 1, lastRow, 26).clearContent() // 入力されている値を削除する
AS.getRange('G:Z').setBackground(null) // 背景色を削除
////// もしフィルターがかかっていたら解除
var filter = AS.getFilter()
if( filter == null ){
} else {
AS.getFilter().remove()
}
}
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
もしフィルターがかかっていたら、解除するコードです
ついでにマクロボタン投下の最初に入れておくと便利なコードを追加しました
最初にこの一連を入れておくとエラー回避できます
指定したい範囲は仮なので書き換えてください
// 範囲指定の方向
getRange(5, 1, lastRow, 26)
↓
getRange(行ここから, 列ここから, 行ここまで, 列ここまで) の意味です
// セルの結合を解除
まず最初に不要なものは初期化しておきましょう
その一つが「セルの結合解除」です
指定範囲の後にbreakApart()で結合解除できます
////// もしフィルターがかかっていたら解除
フィルター機能は便利ですが、絞られている状態で放置されていると事故ります
絞った状態で離脱はあるあるなので食い止められません
スクリプトの最初でしっかり解除しておきましょう
フィルターがnull(かかってなかったら)だったらスルー、かかってたらフィルター設定解除です