diff --git a/src/client/app/common/views/directives/autocomplete.ts b/src/client/app/common/views/directives/autocomplete.ts
index 355e3bd523eba7bf05aa481d6211e9f9c55b2cd5..7f8e409a7c734b6a2ce40afc13b888e850531506 100644
--- a/src/client/app/common/views/directives/autocomplete.ts
+++ b/src/client/app/common/views/directives/autocomplete.ts
@@ -25,6 +25,7 @@ class Autocomplete {
 	private opts: {
 		model: string;
 	};
+	private opening: boolean;
 
 	private get text(): string {
 		return this.vm[this.opts.model];
@@ -48,6 +49,7 @@ class Autocomplete {
 		this.textarea = textarea;
 		this.vm = vm;
 		this.opts = opts;
+		this.opening = false;
 	}
 
 	/**
@@ -128,6 +130,8 @@ class Autocomplete {
 		if (type != this.currentType) {
 			this.close();
 		}
+		if (this.opening) return;
+		this.opening = true;
 		this.currentType = type;
 
 		//#region サジェストを表示すべき位置を計算
@@ -143,6 +147,8 @@ class Autocomplete {
 			this.suggestion.x = x;
 			this.suggestion.y = y;
 			this.suggestion.q = q;
+
+			this.opening = false;
 		} else {
 			const MkAutocomplete = await import('../components/autocomplete.vue').then(m => m.default);
 
@@ -162,6 +168,8 @@ class Autocomplete {
 
 			// 要素追加
 			document.body.appendChild(this.suggestion.$el);
+
+			this.opening = false;
 		}
 	}